Jump to content


Photo

Can I midi-map 'schedule next sequence'

midi sequencer

  • Please log in to reply
13 replies to this topic

#1 brisket

brisket

    Member

  • Normal Members
  • PipPip
  • 61 posts
  • Gender:Male
  • Interests:tropical-industrial & organ meats

Posted 15 October 2015 - 02:34

I want to assign a button to schedule the next sequence -- not play it immediately; ie, same as a left click on the pattern number, not a double-click. 

 

Even better: assign scheduling to all the patterns (would give pretty much the same functionality as 'scene' launching in other programs).

 

This seems so obvious, I'm wondering if I'm overlooking a simple setting somewhere.



#2 Djeroek

Djeroek

    Probably More God or Borg Than Human Member

  • Normal Members
  • PipPipPipPipPipPipPipPipPipPipPipPipPipPipPip
  • 6797 posts
  • Gender:Male
  • Location:Borneo

Posted 15 October 2015 - 09:01

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.



#3 brisket

brisket

    Member

  • Normal Members
  • PipPip
  • 61 posts
  • Gender:Male
  • Interests:tropical-industrial & organ meats

Posted 15 October 2015 - 19:23

Yeah, I looked in the midi-map window but couldn't find an action for this.

Maybe I'm looking under the wrong name? If so, please let me know what I should be looking for!



#4 danoise

danoise

    Probably More God or Borg Than Human Member

  • Renoise Team
  • PipPipPipPipPipPipPipPipPipPipPipPipPipPipPip
  • 6991 posts
  • Gender:Male
  • Location:Berlin
  • Interests:wildlife + urban trekking

Posted 15 October 2015 - 22:25

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

 

1. Go into the Renoise program folder (on my machine, it's "C:\Program Files\Renoise 3.1.0"

2. In the folder "Scripts" there is a file called "GlobalMidiActions.lua". Mark the file for copy

3. Now head into another folder - Renoise help menu > Show Renoise preferences folder 

4. Finally, in the subfolder "Scripts", paste the file as "GlobalMidiActions.lua" (same name).

5. 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


Tracking with Stuff. API wishlist | Soundcloud


#5 brisket

brisket

    Member

  • Normal Members
  • PipPip
  • 61 posts
  • Gender:Male
  • Interests:tropical-industrial & organ meats

Posted 16 October 2015 - 01:54

Hey thanks, nice clear directions, that seems to be working. (Also for the surprise update, I'm loving the new filters.)

 

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?



#6 danoise

danoise

    Probably More God or Borg Than Human Member

  • Renoise Team
  • PipPipPipPipPipPipPipPipPipPipPipPipPipPipPip
  • 6991 posts
  • Gender:Male
  • Location:Berlin
  • Interests:wildlife + urban trekking

Posted 16 October 2015 - 12:57

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]. 


Tracking with Stuff. API wishlist | Soundcloud


#7 brisket

brisket

    Member

  • Normal Members
  • PipPip
  • 61 posts
  • Gender:Male
  • Interests:tropical-industrial & organ meats

Posted 17 October 2015 - 03:42

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.)



#8 danoise

danoise

    Probably More God or Borg Than Human Member

  • Renoise Team
  • PipPipPipPipPipPipPipPipPipPipPipPipPipPipPip
  • 6991 posts
  • Gender:Male
  • Location:Berlin
  • Interests:wildlife + urban trekking

Posted 17 October 2015 - 15:32

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)


  • Ledger likes this

Tracking with Stuff. API wishlist | Soundcloud


#9 brisket

brisket

    Member

  • Normal Members
  • PipPip
  • 61 posts
  • Gender:Male
  • Interests:tropical-industrial & organ meats

Posted 19 October 2015 - 03:58

THANK YOU. Really.

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.

 

Cheers!


  • Ledger likes this

#10 danoise

danoise

    Probably More God or Borg Than Human Member

  • Renoise Team
  • PipPipPipPipPipPipPipPipPipPipPipPipPipPipPip
  • 6991 posts
  • Gender:Male
  • Location:Berlin
  • Interests:wildlife + urban trekking

Posted 22 October 2015 - 18:51

Hey brisket,

it's really nice to hear that you find them useful. 

These mappings will work 'out of the box' in the next beta: 

Seq. Triggering:Schedule:Section:Current [Trigger]
Seq. Triggering:Schedule:Section:Next [Trigger]
Seq. Triggering:Schedule:Section:Previous [Trigger]
Seq. Triggering:Schedule:Section:Section XX [Set]
Seq. Triggering:Schedule:Section XX:Section #%02d [Trigger]
Seq. Looping:Section:Current Section [Trigger]
Seq. Looping:Section:Section XX [Set]
Seq. Triggering:Schedule:Next [Trigger]
Seq. Triggering:Schedule:Previous [Trigger]

And we could add even more mappings. Suggestions welcome  :)


Tracking with Stuff. API wishlist | Soundcloud


#11 brisket

brisket

    Member

  • Normal Members
  • PipPip
  • 61 posts
  • Gender:Male
  • Interests:tropical-industrial & organ meats

Posted 25 October 2015 - 09:14

Ha, excellent!

I'm really curious if anyone else is using Renoise live in the same way as I am..? because they seem like useful actions..?



#12 danoise

danoise

    Probably More God or Borg Than Human Member

  • Renoise Team
  • PipPipPipPipPipPipPipPipPipPipPipPipPipPipPip
  • 6991 posts
  • Gender:Male
  • Location:Berlin
  • Interests:wildlife + urban trekking

Posted 25 October 2015 - 14:00

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.


Tracking with Stuff. API wishlist | Soundcloud


#13 Stamba

Stamba

    New Member

  • Normal Members
  • Pip
  • 1 posts

Posted 02 November 2018 - 22:02

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...

 

Any clue ? :)

 

Thanks a lot !

 

David



#14 danoise

danoise

    Probably More God or Borg Than Human Member

  • Renoise Team
  • PipPipPipPipPipPipPipPipPipPipPipPipPipPipPip
  • 6991 posts
  • Gender:Male
  • Location:Berlin
  • Interests:wildlife + urban trekking

Posted 06 November 2018 - 15:42

I guess i'm missing something, but, using duplex (v 1.05 or 1.07b) with novation launchpad and renoise (3.1.1)... 

 

Wrong thread, I guess? But I am the author of Duplex - will check what's up with this (have a LP myself) :) 


Tracking with Stuff. API wishlist | Soundcloud






Also tagged with one or more of these keywords: midi, sequencer