New Tool (3.4): Grid Pie

I did a few more tests and everything is “good enough for me.”

Version 0.8 has been released to the Tools page. Polyrhythms and odd time signatures are now enabled by default.

http://tools.renoise.com/tools/grid-pie

Patches to speed things up even more are, of course, welcome.

Oh, sorry. Have no tested thoroughly, not even read the whole thing. Result look good to me though.

Main bottleneck is adding the points here, so there’s not really much left to optimize.
Nevertheless have done/fixed what can be fixed. Again only quickly tested, so please only use this as inspiration:
[luabox]
function copy_and_expand(source_pattern, dest_pattern, track_idx, number_of_lines)

local source_track = source_pattern:track(track_idx)
local dest_track = dest_pattern:track(track_idx)

if number_of_lines == nil then
number_of_lines = source_pattern.number_of_lines
end

if source_pattern ~= dest_pattern then
dest_track:copy_from(source_track)
end

if dest_pattern.number_of_lines <= number_of_lines then
return
end

local multiplier = math.floor(dest_pattern.number_of_lines / number_of_lines) - 1

for i=1, number_of_lines do
local source_line = dest_track:line(i)

for j=1, multiplier do
local to_line = i + number_of_lines * j
local dest_line = dest_track:line(to_line)

– Copy the top of pattern to the expanded lines
if not source_line.is_empty then
dest_line:copy_from(source_line)
end

for _,automation in pairs(dest_track.automation) do
for _,point in pairs(automation.points) do
if (math.floor(point.time) == i) then
local dest_time = to_line + point.time - math.floor(point.time)
automation:add_point_at(dest_time, point.value)
elseif math.floor(point.time) > i then
break
end
end
end
end
end

end
[/luabox]

Alright! Thanks Takitk.

Version 0.81 in SVN and released to the Tools page.

http://tools.renoise.com/tools/grid-pie

Cheers.

Me again, last one for a while now. I promise.

Version 0.82 released to the Tools page. Show “poly count combo!” in Renoise’s status bar.

http://tools.renoise.com/tools/grid-pie

Thanks again everyone!

Here I hope you get a glimpse of my intention.

This is one of the originals:

2448 OriginalSequence.png

Button to clear whole “Sequence”:

2443 Cleared.jpg

Right now inserted but playing starts when next measurement / bar is reached (like ableton live standard behaviour I guess)
Maybe done by right(middle mouse button?) click:

2449 PlayNextBar.jpg

Move the whole “Sequence” one line down (compared to next pic):

2450 MoveDown.jpg

Move the whole “Sequence” one line up (compared to previous pic):

2447 MoveUp.jpg

Same as before, but Move it Right:

2446 MoveRight.jpg

Move it left:
2445 MoveLeft.png

Choose from a “saved” sequence:

Hi dr4g0n76,

What controller are you using? For example, when you say “button to clear the sequence” what button are you talking about?

@ Connor_BW:

I’m using a Korg M3 / Radias combination (Radiasboard inside M3)

And what I like to do is to map those yet lacking functions to the m3.
And if you like to I’d integrate them myself and post the code here. No big deal, I guess.

I just fiddled around with ableton live and some dj-ing tools and had an Idea that would you did could be
a real great live-mixing dj-ing tool for renoise. That’s what I see at the horizon, you know?

:wink:

Really great stuff what you did here.

Hope it’s clearer now?!

Hey, that would be great!

I made this as a 24 hour hack, then polished up the concept in my spare time and am happy where it is now. I’m not sure where to take Grid Pie. I’d like to keep it simple but I would love to see other people submit patches, too.

I guess this is what you meant by “second gui”? Like, a separate dialogue for new optional buttons? I don’t think the coding is really hard to do. It’s just that I don’t own any grid controller except the LPD8 and I don’t really enjoy coding stuff I don’t use. It would be a lot more fun for me to integrate patches (code). I appreciate feature suggestions, but you can understand that it gets boring fast to field feature requests that don’t benefit me personally, right? :)

Cheers.

Ok, so let me search for some features more,

do the patches and discuss “how and if” integrate them.

I will have a look at

  • ableton live
  • traktor control (hardware of native instruments)
  • novation launchpad (in fact gridpie remembered me of that at the very first sight)
  • native instruments machine
  • kaoss pad

and some own features.

I think that’s it.

Base on this I’ll create a feature integration list.

Deal? (reaching out hand. :rolleyes:)

Sure thing. Feel free to fork, too. :)

Cheers.

EDIT: Since I didn’t use duplex once yet I don’t know if this cuts with its concept. Maybe someone else knows?!

Exactly.

I think so too.

Yes as a software system architect I got to know hat. :wink:

Suggestion number one:

2451 option_control.jpg

I just took this from a c#.Net Application and changed it to show a possible prototype…
Final version will be in lua if possible, for sure.

here is the description of the following elements:

1.) Preview:

Don’t know yet, maybe this can become what I meant by play at next beat /measurment (otherwise this is done on gridpie by right clicking/middle clicking or something similar)

2.) [b]Predefined Sequences

[/b]You wanna define sequences? choose them from there, maybe it consists of pairs like:

1 1, 2 1, 4 5 (vertical and horizontal position, maybe also triplets? then it would be: 1 1 0, 2 2 3 - last one is state: enabled / next beat or measurement - whatever)

  1. [b]Swapping/b

taken from my application maybe this might mean swap actual “sequence” with chosen sequence?! Dunno yet.
4) Match size: also taken from my application, has no meaning yet, maybe someone knows if useful?

    1. [b]Loadable prefs/sequences/configurations maybe

[/b] → this could be used to load configurations…
7) maybe shows the configuration there

  1. [b]Move / Lock-Unlock / Rotate Sequence

[/b]Should be to move the sequence (up /down / left / right, lock/unlock/rotate)
Lock would mean: you can’t move outta margin, unlock: you can, rotate what moves out one side, will come in again from the other side (hope that’s clear?)
And the textbox is to input the “rotation”

Another Idea would be to randomize the input.

  1. Undo / Redo

    If I’d like to undo/redo:
    All actions have to be saved in memory somewhere…

So if one sequence was:

A.) 1 1, 2 2

then

B.) 2 2, 3 3

and then

C.) 3 3, 4 4

undo once means:

going back to B) again, another one is A) again, redo will go back to B) and so on (known behaviour as in every program)

10/11/12) Apply changes or not.

I guess this is only useful if:

a) u wanna setup what should happen and OK really makes it happen.
B) realtime

But then there is a tickable checkbox mixing like “realtime

  1. Trackbars to do everything imaginable with the actual gridpie playing tracks (maybe rotate/arpeggiate/shuffle/randomize notes)…
  2. Same as 13 but goes for the whole pattern.

Connor_BW and others what do you think about that?

So I guess the complete thing is something between… (s. also pictures below…)

  • Karma (rearranging notes at the fly)

  • Novation Launchpad (what gridpie already does only adding to be able to MOVE the sequence around, actually.)
    EDIT: Maybe button colors of gridpie could represent states… not really sure yet.

  • Traktor Kontrol (Native instruments)

If you code it, I won’t stop you.

Sure.

This is THE tool I’ve been waiting for. The tool that would fully integrate Renoise into my live set. Great work!

I managed to get LED feedback on my Monome using toggles in Pages, and Bidule to remap the MIDI-messages to switch the non active slots off.

Only problem now is that I’m getting a bit of lag when I switch between clips. The total CPU load on my crummy old laptop is pretty high. Deleted some tracks/effect chains and got it down to about 80% tops when switching. Still lag. I will try to shave off a bit more and see if it helps.

Here’s a recording of me switching quickly between two identical clips: www.dogblessyourart.com/temp/gridpie_test_lag.mp3

Unfortunately it seems my MIDI-feedback hack is causing most of the lag. When I disconnect it, I get almost glitch free switching… only when switching really fast. Maybe it would work fine on a better laptop.

man looking forward to getting my new laptop(hopefully on monday,as my desktop died on me)so cant do any production the next days

this looks like this could be renoises live-mode :drummer:

There! I reworked the MIDI-feedback in Bidule. Made a less message intensive solution that only sends note off to the pad previously pressed, where the first version sent to all seven in a column every time. Seems to work fine now, no lag.

I will start developing the promised extensions next week.
[i][b]Already fried fiddling around with a second lua interface in one program.

@Connor_BW:

Did you do another patch for gridpie?
Because I’d like to integrate the expansions into newest version.

[/b][/i]

@ dr4g0n76: I was talking about the basic Grid Pie function. That is what I’ve been waiting for. All Bidule provides is LED feedback on my Monome.

I have an idea for Grid Pie. Recording/editing the clips on the fly.

Enable pattern follow, enable rec, select the right track… all possible with simple MIDI-mapping. Now editing a clip that has been copied to the last pattern is possible. What I don’t know how to set up is copying the edited clip back to the originally triggered one, preferably when stopping the clip or triggering another one.

And a simple copy function would also be very useful. Pressing a pad to copy content from and another to copy to.

I hope the explanation isn’t too confusing.

Edit: I guess this wouldn’t work too well with polyrhythmic stuff tho. <_<