GridPie Alternative Duplex app idea

Hi programmers of Renoise, I need your help.

As I really want to use renoise in live situations I need a tool to trigger tracks nonlinear with my midi controller. The Duplex Gridpie has some flaws.

1 running jack on linux, when renoise is jack transport master and gridpie is enabled the transport just breaks. Violently flashes start/stop etc.
2when in record mode and sequencing patterns, gridpie wants to create new patterns to record the mixing and mashing of tracks. however this is also broken and just randomly creates new patterns.

So I was trying to look at it but damn it has like 3000+ lines of code and I wouldnt know where to begin looking for whats causing trouble.
Instead I was thinking about simple functionality that would even make Gridpie better. Let me try to put this into words:

Instead only working in the pattern at the bottom, you can be anywhere in the pattern matrix. no restrictions, no mutes.

the basic concept
when a track from another sequence is triggered, this track will be aliased to the one in the pattern that is playing.

issues
as we dont want to loose the contend of the track that is being overwritten with the alias, it might be stored in a table (thats how i imagine it as a none programmer) so that it can be restored when the button for the aliased track is released again.

further fuctionality
1 copy instead of alias.
When a button of a track is held and during that another button is pressed, the content of the first track is copied to the second, without using an alias

1.1 if that second track is out of range, create new patterns

2 mute
when the button of the track in the active pattern is pressed, the track gets muted

3 simple record
when in record mode activating a pattern will result in another copy action. But this time only the pattern below the cursor is copied.

implementation
there needs to be a navigator of course for when the grid of the midi controller is smaller than the number of tracks and patterns.
to jump around patterns it needs pattern trigger/looper like found on the matrix duplex application (without the short delay when switching patterns)

In my imagination of a non programmer this seems reasonably easy to implement. but of course im missing the big picture. but these are all functions that renoise lua api should include without too much hacking.

Please let me know what you think about this. If and why it actually isnt that easy. If you would like to help me with it. If you could point me in the right direction or give me a headstart on how i would approach a concept of writing that program.

I really am in need of a reliable tool for live playing and using bitwig with redux just isnt enough of renoise.
Thanks for your help!

I have a little theory, it goes like this…

If I write a simple tool that setups a transport playback notifier i.e.:

song.transport.playing_observable:add_notifier (playback)

and I add my ‘playback’ notifier function:

function playback()
  print("transport play/stop hit")
end

each time the user presses either play or stop the notifier ‘playback’ function is called.

If we modify the playback notifier function to include a write to the Renoise transport position:

function playback()
  print("transport play/stop hit")
  renoise.song().transport.playback_pos = renoise.song().transport.playback_pos
end

It’s fine, nothing happens. The notifier is called once each time the user presses start or stop on the transport.

However if we enable ‘Jack Transport Sync’ in the Renoise preferences, the notifier gets repeatedly called. If this is what is happening in Duplex/Gridpie then that could have the effect of the start/stop flashes. Anyway if my little theory is correct it is probably a matter you would have to try and take up with both @danoise and/or @taktik.

thanks for your insights. I read in some post in which someone pointed out the bug about the pattern creation in record mode, that danoise doesnt have so much time these days as he is a father and doing other things. He wrote that he doesnt really have time to maintain gridpie anymore. so I dont know if its possible to bother him with this.

However I spend some time trying to understand the matrix application. Of course with my little programming experience there is so much that I dont understand. But it seems like a candidate for a template to the ideas i sketched out. For the first part of my idea, i would ‘only’ have to change it from muting and unmuting a track to aliasing and unaliasing a track.

an idea about functionality that i feel would really bring value to this would be as follows:
while holding down a track button, it gets highlighted. all the tracks that you select at the same time get copied into the highlighted one.
these three functions, aliasing, remashing (nr 3 of further functionality) and combining could turn this into a powerful compoition tool. especially if you combine it with the rotate application.
Damn im imagining how cool this all could be but I just have no idea how hard it would be to get there.

ah well but maybe they will say a few words :slight_smile: