Have you searched in the midi-map window (press ctrl+m)? Or maybe with button, you mean computer keyboard? Than you should look in the preferences\keys for the keybindins, not sure it is there though.
What you want can be done by opening the mapping dialog, CMD/CTRL+M
Then search for “schedule”. You will get a lot of choices
The following is still useful, (I originally misread this as “sections”, not “sequence”…)
Sections are really useful, but not MIDI mapped in Renoise by default.
Luckily, we can quite easily customize the built-in MIDI mappings
Here’s the procedure for overriding the default mappings
Go into the Renoise program folder (on my machine, it’s “C:\Program Files\Renoise 3.1.0”
In the folder “Scripts” there is a file called “GlobalMidiActions.lua”. Mark the file for copy
Now head into another folder - Renoise help menu > Show Renoise preferences folder
Finally, in the subfolder “Scripts”, paste the file as “GlobalMidiActions.lua” (same name).
Now Renoise will use this file instead of the default one.
To add section scheduling, we can add the following using a text editor
-- Seq. Triggering:Schedule:Section
local schedule_section_pos_by_seq_pos = function(sequence_pos)
local rns = renoise.song()
local positions = {}
for k,v in ipairs(rns.sequencer.pattern_sequence) do
if rns.sequencer:sequence_is_start_of_section(k) then
table.insert(positions,k)
end
end
if positions[sequence_pos] then
song().transport:set_scheduled_sequence(positions[sequence_pos])
end
end
add_action("Seq. Triggering:Schedule:Section XX [Set]",
function(message)
if message:is_abs_value() then
local sequence_pos = clamp_value(
message.int_value, 1, song().transport.song_length.sequence)
schedule_section_pos_by_seq_pos(sequence_pos)
end
end)
for sequence_pos = 1,MAX_SEQUENCE_MAPPINGS do
add_action(string.format(
"Seq. Triggering:Schedule:Section XX:Section #%02d [Trigger]",
sequence_pos),
function(message)
if message:is_trigger() then
schedule_section_pos_by_seq_pos(sequence_pos)
end
end)
end
Insert that code at the end of the file, save, restart Renoise and you should be ready to go
A follow-up question: in the midi-mapping I can map ‘Select next sequence’, but only as [trigger], not as [set]. Is there any way around this?
[Set] means that you supply some value along with the message - for example, CC number #01 might be mapped to control the scheduling, and by sending a value of 7 you are then triggering sequence #07. Send a value of 5 and you trigger sequence #05, and so on.
For an action like “Select next sequence” the value does not matter - this is why it’s labelled a [Trigger].
OK, I thought it was about when the action was implemented. What I want could maybe be called ‘schedule next’?
What I want to do: playing live, have a simple MIDI control to schedule the next sequence (not jump to it immediately). I can map ‘schedule sequence 2, 3’, etc to different buttons, but without bidirectional control it can be difficult to tell what sequence you’re up to (when you’re singing & bantering too as I tend to do). I have ‘play next’ but that skips abruptly to the next sequence, which isn’t what I want, I want the current one to finish first. Can I do this? (Thanks for your patience.)
If you follow the instructions above, you can add next/previous by adding this code to GlobalMidiActions
add_action("Seq. Triggering:Schedule:Next [Trigger]",
function(message)
if message:is_trigger() then
local seq_pos = song().transport.edit_pos.sequence + 1
if song().sequencer.pattern_sequence[seq_pos] then
song().transport:set_scheduled_sequence(seq_pos)
end
end
end)
add_action("Seq. Triggering:Schedule:Previous [Trigger]",
function(message)
if message:is_trigger() then
local seq_pos = song().transport.edit_pos.sequence - 1
if song().sequencer.pattern_sequence[seq_pos] then
song().transport:set_scheduled_sequence(seq_pos)
end
end
end)
I’m stoked (Kiwi for EXTREMELY HAPPY) that the developer has taken the time to write this little bit of script for me, that maybe has no use for anyone else but is a big help for me.
I’m really curious if anyone else is using Renoise live in the same way as I am…?
Absolutely - different artists have asked me for pattern sections to be supported in my Duplex Matrix application.
But since I have been working ever more closely with the Renoise API, it makes sense to have native support.
I guess i’m missing something, but, using duplex (v 1.05 or 1.07b) with novation launchpad and renoise (3.1.1)… I’m not able to schedule pattern in Matrix + Mixer + Transport mode… even if “schedule pattern” mode is correctly selected in the settings for this mode…