tilt_sequencer: Jack-Transport Start/Stop, Fractional Beat Intervals

Habe über das Wochenende erstmal den Parser von tilt_sequencer komplettiert.

Kommanozeilen-Syntax:

tilt_sequencer DATAFILE [MIDI_PORT [INITIAL_BPM]]

Argumente:

  • DATAFILE:
    String: Datei mit Events.
  • MIDI_PORT:
    String: Name des zu öffnenden virtuellen MIDI-Ausgabe-Ports;
    Default: „tilt_sequencer“.
  • INITIAL_BPM:
    Float: Wenn nicht von JACK-Transport mitgeteilt, verwende dieses Temp in beats-per-minute;
    Default: 120.

Syntax der Event-Datei:

Leere Zeilen werden ignoriert.

Jede nicht-leere Zeile besteht aus einem oder mehreren „Token“. Ein „Token“ ist entweder ein Schlüsselwort oder ein numerischer Wert.

Float-Beat:

beats [byte1 [byte2 [byte3]]

Float-Value beats, gefolgt von 0 bis 3 MIDI-Message-Bytes.

Fractional-Beat:

beats/beat_r [byte1 [byte2 [byte3]]

Float-Value beats, gefolgt von Integer-Value beat_r, gefolgt von 0 bis 3 MIDI-Message-Bytes.

Control:

CTRL ctrl_num ctrl_val

Schlüsselwort „CTRL“ gefolgt von Byte-Wert ctrl_num, gefolgt von Byte-Wert ctrl_val.

Beispiel:

CTRL 1 0
CTRL 2 0
CTRL 3 0
1/3 144 80 100
0 128 80 127

CTRL 1 20
CTRL 2 35
CTRL 3 45
1/3 144 80 100
0 128 80 127

CTRL 1 35
CTRL 2 55
CTRL 3 70
1/3
1/3 144 80 100
0 128 80 127

In diesem Beispiel werden die Controller 1 bis 3 nacheinander auf die Werte (0,0,0), (20,35,45) und schließlich (35, 55, 70) gesetzt. Nach jeder Änderung wird einen Drittel-Beat lang die Note 80 auf Kanal 0 mit Velocity 100 angeschlagen und mit Velocity 127 beendet.

Download:

Wie immer per SVN:

svn co svn://linuxfoo.de/tilt_sequencer

Enjoy. 🙂