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
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
Move the whole “Sequence” one line down (compared to next pic):
2450
Move the whole “Sequence” one line up (compared to previous pic):
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?
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?
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.
Suggestion number one:
2451
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)
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?
[b]Loadable prefs/sequences/configurations maybe
[/b] → this could be used to load configurations…
7) maybe shows the configuration there
[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.
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 again, another one is A) again, redo will go back to 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.
realtime
But then there is a tickable checkbox mixing like “realtime ”
Trackbars to do everything imaginable with the actual gridpie playing tracks (maybe rotate/arpeggiate/shuffle/randomize notes)…
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.
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.
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.
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 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.