1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331
|
SEQ24 - Midi Sequencer
-----------------------------------------------------------
[1] What & Why
[2] Who
[3] Interface
[4] Contact / Bugs / Ideas
[5] License
-----------------------------------------------------------
[1] What & Why
Seq24 is a real-time midi sequencer. It was created to
provide a very simple interface for editing and playing
midi 'loops'. After searching for a software based
sequencer that would provide the functionality needed for
a live performance, there was little found in the
software realm. I set out to create a very minimal sequencer
that excludes the bloated features of the large software
sequencers, and includes a small subset of features that
I have found usable in performing.
-----------------------------------------------------------
[2] Who
Written by Rob C. Buse. I wrote this program to fill a
hole. I figure it would be a waste if I was the only one
using it. So, I released it under the GPL.
-----------------------------------------------------------
[3] Interface
The program is basically a loop playing machine with a
simple interface.
[3a] Main Window
* File.
The File menu is used to save and load standard
MIDI files. It should be able to handle any
Format 1 standard files, Any other sequencer
should be capable of exporting.
* Options
Used to configure what bus midi clock gets dumped to.
* Help.
Shows the About box.
* Boxes
Each box represents a loop. By right clicking
on an empty box you bring up a menu to create
a new loop, or edit a existing one.
Left clicking on a box will change its state
from muted (white) to playing (black) when
the sequencer is running.
By clicking and holding the left button on a sequence,
you can drag it to a new location on the grid.
Right Clicking will bring up a menu of available options
for the sequence. Here you can select the midi bus/channel.
You can also clear all performance data (on/off) see section
[3d] for more info.
* 'Screen Sets'
You only see 32 loops in the main window. This
is a screen set. You can switch between sets
by using the '[' and ']' keys on your keyboard or
the spin widget labeled set.
There are a total of 32 sets, for a total of
1024 loops.
* BPM
The ; and ' keys will increase/decrease tempo as
will the bpm spinner.
* Muting and Unmuting Tracks.
Left clicking on a Tracks will toggle its playing
status. Hitting its assigned keyboard key will
also toggle its status. Below is the grid thats
mapped to the loops on the screen set.
[1 ][2 ][3 ][4 ][5 ][6 ][7 ][8 ]
[q ][w ][e ][r ][t ][y ][u ][i ]
[a ][s ][d ][f ][g ][h ][j ][k ]
[z ][x ][c ][v ][b ][n ][m ][, ]
* Replace
Holding down 'Left Ctrl' while selecting a sequence
will mute all other sequences and turn on the selected
sequences.
* Restore
Holding 'Alt' will save the state of playing sequences
and restore them when 'Alt' is lifted.
Holding 'Left Ctrl' and 'Alt' at the same time will enable
you to flip over to new sequences briefly and then
flip right back upon lifting 'Alt'.
* Queue
Holding 'Right Ctrl' will queue a on/off toggle for a
sequence when the loop ends.
[3b] Options Window
This window allows us to select which sequence gets midi
clock, and which incoming midi events control the sequencer.
[3c] Edit Window
Right clicking on the main window then selecting
New/Edit will bring up the edit window.
The top bar of the sequence editor lets you
change the name of the sequence, the time
signature of the piece, and how long the loop
is.
Snap selects where the notes will be drawn. Note
Length determines what size they will be. Scale
is the relation between midi ticks and pixels.
1:4 = 4 ticks per pixel. The Bus button selects
which ALSA device to use, and which midi channel.
The 3rd line contains the Undo button, which will roll
back any changes to the sequence from this session.
You can select which Scale and Key the piece is in
and it will grey out those keys on the roll not in
the key. You can select a sequence to draw on the
background to help with writing corresponding parts.
Holding the mouse over any button for a short period
will let you view what it does.
While the sequencer is playing, you can mute/unmute
the sequence by toggling the [Play] button. The
[Thru] button will relay any ALSA midi input
to the sequences Bus and midi channel. [Record]
will capture and ALSA midi input and save it in the
sequence.
On both the grid window and the event window, HOLDING
down the right mouse button will change your cursor
to a pencil and put you in 'draw' mode. Then while
still HOLDING the right mouse button, click the left
mouse button to insert new notes. Many people find
this combination strange at first, but once you get
used to it, it becomes a very fast method of note
manipulation.
Pressing the middle mouse button will let you change
the length of the note.
The left mouse button lets you select multiple events
which can then be clicked and moved, cut (Ctrl-X),
copy (Ctrl-C), or pasted (Ctrl-V). When the notes are
selected, you can delete them with the Delete key.
Right clicking on the event strip ( directly under
the paino roll grid ) will allow you to add/select/move
midi events (not note on/off messages) somewhat like the
piano grid.
The data editor ( directly under the event strip ) is used
to change note velocities, channel pressure, control codes,
patch select, etc. Just click + drag the mouse across
the window to draw a line. The values will match that line.
Any events that are selected in the paino roll or event
strip can have their values modified with the mouse
wheel.
The [Event] button allows you to select which type of data
the event strip and data editor are currently displaying.
[3d] Performace Edit
Right Click on the Roll to enter draw mode, gray boxes
represent when the track is on. Right and left click to
drop the [R] and [L] anchors on the bar indicator. Use
the collapse and expand button to modify events. Middle
click on the bar indicator to drop a new start position.
You can only change the start position when the performace
is not playing.
[3e] .seq24rc File
After you run seq24 for the first time, it will generate
a .seq24rc file in your home directory.
It contains the the data for remote midi control, keyboard
control, and midi clock.
* [midi-control]
For each sequence, we can set up midi events to turn a
sequence on, off, or toggle it. We see the following
lines in the [midi-control] section:
0 [0 0 0 0 0 0] [0 0 0 0 0 0] [0 0 0 0 0 0]
1 [0 0 0 0 0 0] [0 0 0 0 0 0] [0 0 0 0 0 0]
2 [0 0 0 0 0 0] [0 0 0 0 0 0] [0 0 0 0 0 0]
...
The first number is the sequence in the main window. Each set
of brackets corresponds to a midi filter. If the incoming midi
event matches the filter, it will either [toggle],[on],or[off]
the sequence respectivaly.
The layout of each filter inside the bracket is as follows:
[(on/off) (inverse) (midi status byte (channel ignored))
(data1) (data2 min) (data2 max)]
If the on/off is set to 1, it will match the incoming midi
to the pattern and perfrom the action (on/off/toggle)
if the data falls in the range specified. All values
are in decimal.
The last three is the range of data that will match.
The following is an example of responding to note on events,
note 0, with any velocity to turn the sequence on, and note
off events, note 0, and any velocity to turn the sequence off.
Toggle On Off
1 [0 0 0 0 0 0] [1 0 144 0 0 127] [1 0 128 0 0 127]
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. This is cool because you can map several
sequences to a knob or fader.
The following example would map a row of sequences to one knob
sending out changes for Control Code 1:
Toggle On Off
0 [0 0 0 0 0 0] [1 1 176 1 0 15] [0 0 0 0 0 0]
1 [0 0 0 0 0 0] [1 1 176 1 16 31] [0 0 0 0 0 0]
2 [0 0 0 0 0 0] [1 1 176 1 32 47] [0 0 0 0 0 0]
3 [0 0 0 0 0 0] [1 1 176 1 48 63] [0 0 0 0 0 0]
4 [0 0 0 0 0 0] [1 1 176 1 64 79] [0 0 0 0 0 0]
5 [0 0 0 0 0 0] [1 1 176 1 80 95] [0 0 0 0 0 0]
6 [0 0 0 0 0 0] [1 1 176 1 96 111] [0 0 0 0 0 0]
7 [0 0 0 0 0 0] [1 1 176 1 112 127] [0 0 0 0 0 0]
After the list of sequences and their midi events, you can
set seq24 to handle midi events and change the following:
bpm up and down, screen set up and down.
replace, snapshot, and queue ( see the end of 3a )
* [midi-clock]
The midi clock fields will contain the clocking state from the last
time seq24 was run. Turn off clock with a 0, or on with a 1.
* [keyboard-control]
The keyboard control is a dump of the keys that seq24
recognises and its corresponding sequence number.
There are also the modifier keys: replace, snapshot,
and queue ( see the end of 3a ).
To get the correct keys, run seq24 with --show_keys.
[3f] JACK Transport
In order to run seq24 with JACK Tranport Sync, you need
to enable it at the command line with the following flags:
--jack_transport : seq24 will sync to JACK transport
if the JACK server is available.
--jack_master : seq24 will try to be JACK master
--jack_master_cond : The attempt to be JACK master will
fail if there is already a master,
otherwise it will just take over.
--jack_start_mode <x> : When seq24 is synced to JACK,
The playback command comes
from the JACK server. seq24 will
play in performance mode
by default (section [3d]).
If you want live mode, set
--jack_start_mode 0.
It is best to run seq24 with another master like ardour.
You can not change the BPM of seq24 while
rolling in JACK sync mode.
-----------------------------------------------------------
[4] Contact
If you have Ideas about seq24 or a bug report,
please email seq24@filter24.org. If its a bug report,
please add [BUG] to the subject.
-----------------------------------------------------------
[5] License
Released under the Terms of the GPL. See the COPYING file
for a full readout.
|