New Tool (3.4): Grid Pie

Danoise those sound like Killer additional features to me!

I just realized that we don’t need the additional trigger row. Duplex supports press, release and hold events, so it’s possible for a track copy to happen when a button is released, and a pattern copy could simply be triggered by a held button


I tried Grid pie tonight, this tool is really great. I strongly suggest to anyone interested on live performance to take a look on it. Honestly, seeing the demo video, I didn’t understood much what it was about…But once you’re familiar with it, it’s powerfull and simple to use. I only tried to use it with demo songs, I just imagine how great that tool could be using songs especially designed to be controlled with GridPie…

I even achieved to use my old yamaha DJX keyboard to control it. I was thinking that keyboard useless for my needs, but it seems to be the (almost) perfect companion for Grid Pie; the only issue is that the knobs on DJX are not “endless” (each assignagle knob only have 14steps, as far as I know…But I didn’t test it in deep, so…).

Perhaps an interesting feature to add should be the possibility to map the X and Y controls (= to move in the matrix rows and line) with a couple of keys instead of knobs. Like a “+ and -” for each direction (= 2 buttons or keys for row - and row+, 2 buttons or keys for line+ and line-). Or another way to manage that : first key for 10, 20, 30, etc…and another key for single numbers (1, 2, 3…to 9). SO, for example, if I want to go on line 16 on the matrix pattern I’d push 1 time the first key and 6 times the second one. DO you see what I mean ?

Anyway, just ideas. Great work, thank you for this.

edit : by the way, is there any technic to use another grid than the 3 available (4x2, 4x4, 8x8) ? Something like 16x1, for example. Just to better match my midi keyboard, for example. Once you get used into, it’s pretty simple to use gridpie like that. You need to have one hand on the line choice knob, but you also have the advantage to have controls on all the tracks in the same time, under your other hand.

The Duplex version should automatically fit your controller?

The standalone (deprecated?) version can be changed by opening up the script and changing some variables. This trick is mentioned earlier in the thread. Things have changed since that post. You’ll have to be a bit smarter this time around. :)


local MATRIX_HEIGHT = 8  
local MATRIX_WIDTH = 16  

Used as maximum values, to constrain the midi mapping routine to some reasonable number.

Then at the bottom add:

renoise.tool():add_menu_entry {  
 name = "Main Menu:Tools:Grid Pie:16x1...",  
 invoke = function() main(16, 1) end  

Activate the Renoise Script Editor by following these instructions.

Good luck.

THank you for your answer. I’m using the version available in tools section :

And then, I choosed 8x8 grid, and mapped the 8 first keys of my midi keyboard (“piano” keys), one for each row, and mapped 2 knobs for row and line browsing (with the issue I was speaking about, my knobs have only 14steps).

Can I use your workaround with that tool ?

EDIT : by the way, I just tried the tool again, using another demo song, and this time, the midi mapping of my knob for line changing work perfectly, I was able to move in all the lines of the song. So my knobs are perfectly normal, even if I cannot explain why a song works, and another doesnt.

Grid Pie is great fun, but I’m still a bit irked by the way it takes over your arrangement.
So I’m proposing these refinements:

Feature 1 : running start
If “grid pie mode” has not yet been entered (application has not yet run, or was dun goofed), and you’re actively playing some part of your song when you (re)activate Grid Pie, use the currently playing pattern and mute states as a starting point (instead of a blank pattern). This should ensure a smooth/gapless transition into grid pie’d mode

Feature 2 : keep the beat

Next one has to do with how we can transition from a polyrhythmic pattern of, say 384 lines and into a smaller pattern of say, 128 lines. As Renoise works, if the playback position is within the last part, the playhead will jump and possibly cause a nasty glitch in playback.
Now, the funny thing is that when dealing with polyrhythmics, much of the time there really isn’t such a thing as a “first beat”, it’s more like a feeling really. Is the beat on 2,4 or 6? We can’t assume a lot, but we still have some clues - like the LPB value (more suggestions are welcome):

  • When shortening recombination pattern, assume that the first line is the most important. The playhead jumps back in the pattern by the same amount of lines as we, at the moment the length changed, were located from the end of that pattern. This should cause us to arrive at line 1 in the same amount of time. - If this didn’t work, because the first resulted turned out to be a position before the pattern start (a negative value), we go forward in line-increments that match the LPB (assuming that LPB represent the beat), until we reach a positive value

Feature 3 : live switching
This is specific to the Duplex version - a couple of users have requested that it would be possible to switch between different configurations while preserving the state of Grid Pie. I think we could achieve this with a “scan & match”. Basically:

  • Recognize any existing GRID PIE pattern on startup == recreate the saved setup - First, look for identical patterns (quickly matched) - Then, look for expanded patterns with matching length (slower match) - Finally, recreate tracks that couldn’t be matched in new pattern (could be located right over the GRID PIE pattern, and called something similar sounding)
    When stopping Grid Pie, don’t clear the pattern (allow another scan & match)

EDIT: Yesterday I released a new version of the Duplex port, check out the details here

2.8 compatible version added to the Tools page:


Appreciate this thread is pretty old, but this is a great add-in, and was almost perfect in what I was trying to achieve (using a Machine Jam as a controller). The problem I had with it was with “Grouped” tracks - the uploaded implementation just treated them as regular tracks in the matrix. I’ve therefore added a modification which allows you to create the same grids/matrixes, but treats tracks in a group as one.

8130 Screenshot 2018-07-09 14.31.30.png

Now bear in mind -

  • I’m still figuring out ReNoise (although I think it’s the best DAW I’ve ever used - perhaps from the nostalgia of using “trackers” in the days of my yoof)

  • This is my first time coding with Lua. In fact, I’ve never even heard of it until I started using ReNoise.

  • I’m still trying to figure out how to package this stuff up.

Anyway, attached is the main.lua if anybody wishes to examine it themselves. Much appreciate any feedback on this already fantastic add-on. Mods are in the “function build_interface()”, “function main(x, y, grouped)” and the obvious menu additions at the bottom of the file.

(There might be something else out there that does exactly what I’ve spent quite a fair few hours figuring out how to code. But balls to it - interesting learning experience, regardless!)

1 Like

This is my first time coding with Lua

Cool. Do you code in any other languages then? If you are familiar with GitHub, the source code is here:

You may want to also check out Duplex which has a souped up Grid Pie in it:

I’ll wait for others to give feedback. If none appears in the next few days please ping this thread again and i’ll review your changes. Grid Pie stand-alone is in “maintenance / patches welcome” mode these days…


Thanks for the quick reply, Conner. I’m a software dev by profession (C#, Javascript/Typescript blah blah blah) , but I’ve never got involved in public GitHub projects / branching etc.

Does Duplex support the functionality I added to Grid Pie? If not, do you want me to look into adding it?

A few more things to get my head around if so, but all fun and games :slight_smile:

Okay, had a look at “Duplex” - but seems to be kitted out towards specific types of controllers, rather than a “one fits all” solution. Please let me know if I’m wrong on this assumption.

In the mean time, I realise my original modifications to the “Grid Pie” code didn’t work correctly when the matrix was triggered by Midi controllers on group tracks. The attached version should address this.

At some point in the near future I’ll add this code to a branch on the Git repository. For now the the script is attached if anybody wishes to give it a go.

Okay, obtained the GitHub repo but wont make any mods there just yet.

One thing I can’t get my head around right now - is there any way to determine the Midi device and source key from any controller assignments using the “renoise.tool():add_midi_mapping” method? The “renoise.ScriptingTool.MidiMessage” class returned by the “invoke” function doesn’t really give me much information. “renoise.tool():has_midi_mapping” just gives me a boolean, and I can’t find another other similar method in the documentation.

The objective is I’d like to send SysEx messages to the controller to set the lights when the matrix buttons are triggered by the controller.

Appreciate any info you can provide, folks.

Hello all,

I’m enjoying the Grid Pie tool as a part of Duplex in Renoise 3.1.1.

When I use it with my monome grid 128 it works perfectly.

However, I have tried the Grid Pie tool with a monome grid 64 and the akai apc40, and it seems to work fine except for the fact that I cannot see where on the “grid” the different phrases I have available are. I can see them fine on the grid 128. For example, I’ll try to make a chart below this to show an example pattern matrix:

T1 T2 T3 T4

0 X

1 X X

2 X X


On the grid 128 I can see this layout, but on the grid 64 and the apc40 I cannot. It makes it much more difficult to use.

I’m on ubuntu linux 64-bit, I believe it’s version 18.

Any ideas???


On the grid 128 I can see this layout, but on the grid 64 and the apc40 I cannot.

While I have an 128, the 64 should be functionally the same so this is quite weird. But I’ll check.

For the APC 40, I believe you could try hacking the palette(link to github)

  • find the same file within the Duplex tool folder (Tools > Tool Browser > Right Click > Reveal…)

  • modify the file, save and restart.

The colors are defined as regular RGB colors which are then translated into the colors that the device can show.

And maybe I created the palette in a way that made some colors invisible?

If this really is the case, I would love to get your modifications so they could be integrated :slight_smile:

Is Grid Pie still being developed for the latest versions of Renoise, or…?

im having trouble with duplex gridpie version.

when im in record mode and switch patterns, it just randomly adds many many new patterns on the bottom. maybe this was intended as a way to record switching between patterns but it reall is broken. and i dont know how to turn it off unofrtunately

also it makes renoise randomly crash but it might also be another part of the gridpie duplex configuration for the launchpad

there is system behind it haha. so i enable record, and press something in gridpie. then when i dont change anything, it adds 4 new patterns, when i change something, it adds 5…
weird stuff. id love to know whats going on


As discussed in GridPie - Akai Grid Color Feedback - #27 by spdk

If I replace/override the palette in the GridPieEffectNavigatorTransportMixer.lua, I get the right feedback (colors) on my apc40.

      palette = {
        out_of_bounds            = { color={0x00,0x00,0x00}, text="·", val=false },
        content_selected         = { color={0x00,0xFF,0x00}, text="·", val=true  },
        content_active           = { color={0xFF,0x00,0x00}, text="·", val=false },
        content_active_current   = { color={0xFF,0x00,0x00}, text="·", val=false },
        inactive_content         = { color={0xFF,0x00,0x00}, text="·", val=false },
        gridpie_current          = { color={0xFF,0xFF,0xFF}, text="·", val=false }

I am bumping this topic about a script that I wrote 14 years ago because:

  • I got a new AKAI MPK mini so I am playing around with it again.
  • I made a V1 - I added a new feature: “Indicator lights” (and fixed a couple bugs)
  • The old tutorial video doesn’t explain anything? I’m guessing I made it while intoxicated…

Note: Controller not required, if you want to click with the mouse it’s OK.

Download page with new V1: Grid Pie | Renoise
GitHub Patch: Gridpie: New indicator lights, bugfixes by dac514 · Pull Request #161 · renoise/xrnx · GitHub