Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
wiki:seq24togglemiditutorial [2012/07/19 06:08] – PMDdlAUgODpAuJ 188.143.232.12wiki:seq24togglemiditutorial [2013/06/02 15:45] (current) – external edit 127.0.0.1
Line 1: Line 1:
-Brilliance for free; your parents must be a sweehtreat and a certified genius.+====== seq24: toggle sequences with a MIDI controller ====== 
 + 
 +===== Introduction ===== 
 + 
 +Even though this feature is documented in the [[http://www.filter24.org/seq24/SEQ24|SEQ24]] file I haven't found any reference of anyone using it so I tried to set this up myself because toggling sequences with your keyboard is just not very practical. 
 + 
 +===== Requirements ===== 
 + 
 +  * A recent version of [[https://edge.launchpad.net/seq24/|seq24]], preferably the latest version (0.9.2 as of the writing of this article) 
 +  * A MIDI controller (in my case an [[http://www.akaipro.com/mpkmini|AKAI MPK Mini]]) 
 +  * Some time 
 + 
 +===== Setting up seq24 ===== 
 + 
 +After starting seq24 for the first time it will create a //.seq24rc// file in your home directory. Open it and the first section you'll see, [midi-control], is the section we need. The matrix represents the first two screensets (entries 0 up to and including 63) and some control keys (entries 64 up to and including 73). The three fields between the brackets on each line correspond to a MIDI filter, if the incoming MIDI event matches the filter it will either toggle (first field), enable (second field) or disable (third field) the sequence. 
 + 
 +The layout of each filter inside the bracket is as follows: 
 + 
 +**[(on/off) (inverse) (midi status byte (channel ignored)) (data1) (data2 min) (data2 max)]** 
 + 
 +**(on/off)**: if the on/off is set to 1, it will match the incoming midi to the pattern and perform the action (on/off/toggle) if the data falls in the range specified.  All values are in decimal. 
 + 
 +**(inverse)**: the inverse field will make the sequence perform the opposite action (off for on, on for off) if the data falls outside the specified range. 
 + 
 +**(midi status byte (channel ignored))**: a MIDI status byte number in decimals. You can look them up in the [[http://www.midi.org/techspecs/midimessages.php|MIDI messages tables]], the relevant data is in the [[http://www.midi.org/techspecs/midimessages.php#2|second table]]. As the channel on which the events are sent is ignored you should always use the values for channel 1. 
 + 
 +**(data1)**: the actual MIDI event message number in decimals. This could be a note on/off event or a control/mode change event for example. 
 + 
 +**(data2 min)**: the minimal value for the filter to match. For note on/off events this is the amount of velocity for example. 
 + 
 +**(data2 max)**: the maximum value for the filter to match. 
 + 
 +An example of the [midi-control] section of my //.seq24rc// file I use with the MPK Mini: 
 + 
 +  [midi-control] 
 +  74 
 +  0 [0 0 0  0   0 0] [1 0 144  96   0 127] [1 0 128  96   0 127] 
 +  1 [0 0 0  0   0 0] [1 0 144  97   0 127] [1 0 128  97   0 127] 
 +  2 [0 0 0  0   0 0] [1 0 144  98   0 127] [1 0 128  98   0 127] 
 +  3 [0 0 0  0   0 0] [1 0 144  99   0 127] [1 0 128  99   0 127] 
 +  4 [0 0 0  0   0 0] [1 0 144 100   0 127] [1 0 128 100   0 127] 
 +  5 [0 0 0  0   0 0] [1 0 144 101   0 127] [1 0 128 101   0 127] 
 +  6 [0 0 0  0   0 0] [1 0 144 102   0 127] [1 0 128 102   0 127] 
 +  7 [0 0 0  0   0 0] [1 0 144 103   0 127] [1 0 128 103   0 127] 
 +  8 [0 0 0  0   0 0] [1 0 144 104   0 127] [1 0 128 104   0 127] 
 +  9 [0 0 0  0   0 0] [1 0 144 105   0 127] [1 0 128 105   0 127] 
 +  10 [0 0 0  0   0 0] [1 0 144 106   0 127] [1 0 128 106   0 127] 
 +  11 [0 0 0  0   0 0] [1 0 144 107   0 127] [1 0 128 107   0 127] 
 +  12 [0 0 0  0   0 0] [1 0 144 108   0 127] [1 0 128 108   0 127] 
 +  13 [0 0 0  0   0 0] [1 0 144 109   0 127] [1 0 128 109   0 127] 
 +  14 [0 0 0  0   0 0] [1 0 144 110   0 127] [1 0 128 110   0 127] 
 +  15 [0 0 0  0   0 0] [1 0 144 111   0 127] [1 0 128 111   0 127] 
 +  16 [0 0 0  0   0 0] [0 0         0] [0 0         0] 
 +  17 [0 0 0  0   0 0] [0 0         0] [0 0         0] 
 +  18 [0 0 0  0   0 0] [0 0         0] [0 0         0] 
 +  19 [0 0 0  0   0 0] [0 0         0] [0 0         0] 
 +  20 [0 0 0  0   0 0] [0 0         0] [0 0         0] 
 +  21 [0 0 0  0   0 0] [0 0         0] [0 0         0] 
 +  22 [0 0 0  0   0 0] [0 0         0] [0 0         0] 
 +  23 [0 0 0  0   0 0] [0 0         0] [0 0         0] 
 +  24 [0 0 0  0   0 0] [0 0         0] [0 0         0] 
 +  25 [0 0 0  0   0 0] [0 0         0] [0 0         0] 
 +  26 [0 0 0  0   0 0] [0 0         0] [0 0         0] 
 +  27 [0 0 0  0   0 0] [0 0         0] [0 0         0] 
 +  28 [0 0 0  0   0 0] [0 0         0] [0 0         0] 
 +  29 [0 0 0  0   0 0] [0 0         0] [0 0         0] 
 +  30 [0 0 0  0   0 0] [0 0         0] [0 0         0] 
 +  31 [0 0 0  0   0 0] [0 0         0] [0 0         0] 
 +  # mute in group 
 +  32 [0 0         0] [0 0         0] [0 0         0] 
 +  33 [0 0         0] [0 0         0] [0 0         0] 
 +  34 [0 0         0] [0 0         0] [0 0         0] 
 +  35 [0 0         0] [0 0         0] [0 0         0] 
 +  36 [0 0         0] [0 0         0] [0 0         0] 
 +  37 [0 0         0] [0 0         0] [0 0         0] 
 +  38 [0 0         0] [0 0         0] [0 0         0] 
 +  39 [0 0         0] [0 0         0] [0 0         0] 
 +  40 [0 0         0] [0 0         0] [0 0         0] 
 +  41 [0 0         0] [0 0         0] [0 0         0] 
 +  42 [0 0         0] [0 0         0] [0 0         0] 
 +  43 [0 0         0] [0 0         0] [0 0         0] 
 +  44 [0 0         0] [0 0         0] [0 0         0] 
 +  45 [0 0         0] [0 0         0] [0 0         0] 
 +  46 [0 0         0] [0 0         0] [0 0         0] 
 +  47 [0 0         0] [0 0         0] [0 0         0] 
 +  48 [0 0         0] [0 0         0] [0 0         0] 
 +  49 [0 0         0] [0 0         0] [0 0         0] 
 +  50 [0 0         0] [0 0         0] [0 0         0] 
 +  51 [0 0         0] [0 0         0] [0 0         0] 
 +  52 [0 0         0] [0 0         0] [0 0         0] 
 +  53 [0 0         0] [0 0         0] [0 0         0] 
 +  54 [0 0         0] [0 0         0] [0 0         0] 
 +  55 [0 0         0] [0 0         0] [0 0         0] 
 +  56 [0 0         0] [0 0         0] [0 0         0] 
 +  57 [0 0         0] [0 0         0] [0 0         0] 
 +  58 [0 0         0] [0 0         0] [0 0         0] 
 +  59 [0 0         0] [0 0         0] [0 0         0] 
 +  60 [0 0         0] [0 0         0] [0 0         0] 
 +  61 [0 0         0] [0 0         0] [0 0         0] 
 +  62 [0 0         0] [0 0         0] [0 0         0] 
 +  63 [0 0         0] [0 0         0] [0 0         0] 
 +  # bpm up 
 +  64 [0 0         0] [0 0         0] [0 0         0] 
 +  # bpm down 
 +  65 [0 0         0] [0 0         0] [0 0         0] 
 +  # screen set up 
 +  66 [0 0         0] [0 0         0] [0 0         0] 
 +  # screen set down 
 +  67 [0 0         0] [0 0         0] [0 0         0] 
 +  # mod replace 
 +  68 [0 0         0] [0 0         0] [0 0         0] 
 +  # mod snapshot 
 +  69 [0 0         0] [0 0         0] [0 0         0] 
 +  # mod queue 
 +  70 [0 0         0] [1 0 176  64 127 127] [1 0 176  64     0] 
 +  # mod gmute 
 +  71 [0 0         0] [0 0         0] [0 0         0] 
 +  # mod glearn 
 +  72 [0 0         0] [0 0         0] [0 0         0] 
 +  # screen set play 
 +  73 [0 0         0] [0 0         0] [0 0         0] 
 + 
 +What this example does is listening for notes 96 up to and including 111 and it toggles the sequences on note on events and toggles them off on note off events. 
 + 
 +===== Queuing sequences ===== 
 + 
 +The Akai MPK Mini has Sustain button and I've set the Sustain MIDI event (with MIDI status byte 176 and control/mode change number 64) up as the queue modifier in the 'mod queue' entry: 
 + 
 +  # mod queue 
 +  70 [0 0         0] [1 0 176  64 127 127] [1 0 176  64     0] 
 + 
 +So when I hold down this button and press one of the pads on my MPK Mini the corresponding sequence gets queued. 
 + 
 +===== Final steps ===== 
 + 
 +Start seq24 and connect your MIDI controller (File - Options - MIDI Input). Now you should be able to toggle and queue any patterns in your seq24 session if you set up your .seq24rc file correctly.
wiki/seq24togglemiditutorial.1342670893.txt.gz · Last modified: 2012/07/19 06:08 by 188.143.232.12