New Tool (2.8) Duplex: Grid Pie

(danoise) #101

Fasten your seatbelts!! The faster, better, stronger version of Grid Pie has arrived.

A whole batch of changes, so let’s take them from the top:


Edit-synchronization is now a complete feature. Previously, certain actions would cause TERRIBLE slowdowns.
Extensive support of + use of matrix-slot aliases combined with a pattern-cache system means a HUGE difference, CPU-wise.
Together, this means that Grid Pie is now faster than ever. The worst slowdown gone, and overall performance improved.
It’s not a completely magic bullet, as you will still need to wait for Grid Pie to compute sequences, but now you only have to wait once


Integration with the Renoise workflow has been improved a lot in this version. A hardware controller is still the optimal way to
control Grid Pie, but there is a lot closer integration with the Renoise user interface:

  • You can toggle Grid Pie’s slots by alt-clicking the Renoise pattern matrix
  • You can toggle a pattern by switching to / scheduling in the Renoise pattern sequence (1)
  • You can loop patterns by creating a loop in the pattern sequence
  • You can clone the currently playing __GRID PIE __ pattern (create a “launcher” pattern)

(1) Due to limitations in the Renoise API, the first few notes will be missing when using the pattern sequence to schedule a pattern. Use a controller if you plan to use this feature in a live performance.


Here’s a tip if planning a performance: if you are working with differently-sized patterns that, when combined, form longer
patterns you can maintain the pattern cache between sessions. Otherwise, there is bound to be a lot of copy-expand

  • but you can control which parts need to be expanded!! Here’s how you maintain the cache:
  • Using Grid Pie, create combinations of important slots and then hit the “clone pattern” button in the pattern sequencer.
    This will create a special pattern which has aliased tracks that are expanded to the optimal length - this is then imported
    into Grid Pie the next time the song is loaded

Well, this didn’t make it into this version. Not even sure if it’s practical, as the manual caching trick (mentioned above) seems good enough.

(danoise) #102

Grid Pie is a semi-alternative workflow with a practically endless list of possible features. With this most recent version out in the open, I can tell a bit about what might be ahead.

First and foremost, I think the ability to gather specific combinations of slots are a very useful performance feature. But this is currently implemented in a half-assed sort of way, as you can copy the GRID PIE pattern and it will retain references to the slots. The good thing is that it’s possible to store a specific combination - helpful when experimenting, to save such information in a reliable way. The bad thing is that apart from the storage aspect, such a pattern isn’t really very interesting: from a controller’s perspective, they take up valuable space (a whole row of slots where each slot is never unique, but always referencing some other part of the song).

Essentially, I would like to keep the current philosophy and introduce a specially-named pattern called a “preset pattern”. At any time, a preset pattern could be activated using a single button and we would import the slots it was referencing.

But, what could make the preset pattern special is that

  • while the preset pattern is active, we can select slots and they are replaced within the preset pattern. So, they are not just a static copy of a given Grid Pie state.
  • the matrix mute-state should be left alone (normally, we can’t use this property in Grid Pie). This means that we can save/synchronize track mutes when using presets

I imagine that we could simply specify preset patterns by assigning an auto-generated name like PRESET#1, and having a dedicated mapping in Grid Pie for storing presets

(danoise) #103

So, a week after releasing the turbocharged edition, and I’ve just realized that I forgot to explain the “price” of this wonderful feature!!

See, since the first version, Grid Pie has always copied automation data into the recombination pattern / drafting area. Not a big deal really, there was already a lot of copying going on - but it was always sort of lacking in precision (it would selectively pick one value per pattern-line - so high-precision edits would be lost, but a reasonable compromise, you would get the exact same precision offered when recording automation using MIDI hardware).

But since the whole turbocharged feature is based around using aliases, and aliases does not include automation, this automation envelope support had to go. And really, the only thing lost is if a song that already has a lot of envelopes -> you would need to “convert” these to effect commands*. But otherwise, the whole functionality is exactly the same with FX command as with envelopes.

  • I am thinking about making a standalone tool that does exactly this.

(danoise) #104

I’m almost ready with a new version. Half a dozen new features will make this the biggest update yet

The native UI integration (using the pattern matrix to control Grid Pie) will be GONE. It was too complicated and buggy, simply not worth it.
Using the pattern sequence to schedule patterns is still there, though. That feature is genuinely useful :slight_smile:

Stay tuned

(filtermonk) #105

is it possible to record the gridpie performance?

(danoise) #106

No, but I’m working on that. It’s one of the most-wanted features on my list too :slight_smile:

(filtermonk) #107

oh, ok thank you for the information

(danoise) #108

Finally I am satisfied with the new version. And yes, Grid Pie now has real-time recording.

Please check out the manual (download locations for PDF/HTML format are located in the first post), because this time around there are just too many features to explain in one post :slight_smile:

(Djeroek) #109

Good work! :drummer:

When I try to initialize grid-pie through duplex, selecting my lpd8 controller, I get:

(danoise) #110

Fixed, thanks

(danoise) #111

Note to self: the session recording (recording with unlooped pattern) should commence only when the first track has been altered.
Right now, you have to be really quick in order to enable recording mode AND make a modification, BEFORE the playback goes to the first pattern in the song :wacko:

(phuture) #112

say what now!? that’s really great!

… just had a first jam with it, not sure yet how the recording actually works but i shall read the manual tomorrow after sleep :] for now it was great fun already! freefloooow, thank you

ps: unrelated, something is wrong with the forum clock… x]

(Djeroek) #113

I got this today after booting up the computer / renoise:

I terminated the script and got:

(dby) #114

Great work! Can’t wait to try it out.

I’m looking forward to this tool. Sometimes I use a lot of automation… with a limit of 8 FX columns I’d probably have to prioritize some above others. I’m already using two columns to control my synced LFO.

(danoise) #115

Hmmm…that is weird. Main.lua and Duplex.lua are both quite straightforward scripts.

Did it only happen this one time that you mention?

(Djeroek) #116

yeah, maybe it had something to do with me booting up Renoise to quickly after just starting up windows, not having all drivers loaded in the background? It opens up fine now.

(a773) #117

Ok, this is a little tread hijacking, sorry bout that, but this seems like the best place for this question, so here goes:

I’m doing an external application (not lua, outside of renoise) for handeling the launchpad. My application controls renoise through OSC. Things are going well, but there’s one thing I can’t figure out:

The fírst time I start the application the launchpad works fine. But after stopping the application and starting it again the 8x8 grids + 8 arrows doesn’t seem to send anything. However, by pressing one of the top eight (up, down, left, right, session, user1, user2 and mixer), buttons the launchpad works fine again, and all buttons send correct messages. It might be something I’m doing wrong, but I hoped that one of you guys developing duplex/gridpia, had come across this and found a solution. I tried sending 176,0,0 (reset) and 176,0,1 (set mode to x-y), but it doesn’t seem to help…

Any ideas are welcome!

(danoise) #118

Granted And I’m sorry that I can’t provide you with anything substantial to go on, excerpt perhaps that you probably want to
disable the automap software for your launchpad (mixer2 + arrow down - but I’m pretty sure you already know about that trick).
When operating as a standard midi device, the LP is very straightforward so I cannot guess as to what is screwing with your setup.

On-topic: atte, FYI some of the recent features in Grid Pie are more or less a result of our discussions a couple of months ago. How cool is that?

(a773) #119

Automap? Google suggests it’s some kind of novation software thingie, right? I’m running linux and didn’t install anything from novation (and probably couldn’t even if I wanted to)…

More tests might be needed :slight_smile:

I must make sure to check out the newer version!

However, I’m currently working on my own stuff, which is quite different from duplex/gridpie, but does clip launching too. Basically it uses ChucK for the “notes” (it algorithmic) and sends OSC to renoise, which serves as a sound player. In this scenario each “clip” on the launchpad is actually a piece of ChucK-code that can be thrown in/pulled out of the virtual machine. I used to perform with a similar setup (just without renoise and without a launchpad) a few years ago, and I’d like to get back to that (and as far away from “just pressing play” as possible)…

Now with all my new tracks already in renoise, it’s just the triggering of sounds that’s missing, the mix is already done. This means it’s just the fun part of algorithm-izing a track that is required before the song is live-ready…

(danoise) #120

Yes, it’s a software designed to support Novation’s hardware with dynamic mapping of plugin parameters etc.
Win/OSX only, so you are obviously not affected by this. But I wonder how you’ve connected the Launchpad in the first place (like this or like this ?)

Regarding the new setup, def. sounds interesting … IMO it’s good to have multiple approaches to the same thing