Appendix c: sysex reference – Elektron Monomachine User Manual

Page 150

Advertising
background image

C-4

Appendix C: SYSEX REFERENCE

SYSEX set status:

MIDI Byte | Purpose
------------+----------------------------
(SYSEX init)|
$71 | Set status ID
%00aaaaaa | Set parameter %aaaaaa to ...
%0bbbbbbb | ... value %bbbbbbb
$f7 | SYSEX end

0x01 Current global slot (0 to 7)
0x02 Current kit number (0 to 127)
0x04 Current pattern number (A1=0, A2=1, ... B1=16, ...)
0x08 Current song number (0 to 23)
0x10 Current sequencer mode (pattern mode=0, song mode=1)
0x20 Current audio mode (mono=0, poly=1)
0x21 Current sequencer mode mode (audio=0, midi=1)

SYSEX status response:

MIDI Byte | Purpose
------------+----------------------------
(SYSEX init)|
$72 | Status response ID
%00aaaaaa | Parameter %aaaaaa has ...
%0bbbbbbb | ... value %bbbbbbb (see list below)
$f7 | SYSEX end

0x01 Current global slot (0 to 7)
0x02 Current kit number (0 to 127)
0x04 Current pattern number (A1=0, A2=1, ... B1=16, ...)
0x08 Current song number (0 to 23)
0x10 Current sequencer mode (pattern mode=0, song mode=1)
0x20 Current audio mode (mono=0, poly=1)
0x21 Current sequencer mode mode (audio=0, midi=1)
0x22 Current audio track (0 to 5)
0x23 Current midi seq track (0 to 5)

SYSEX unused:

MIDI Byte | Purpose
------------+----------------------------
(SYSEX init)|
$73 | None
$f7 | SYSEX end

TURBOMIDI PROTOCOL SYSEX DESCRIPTION

All TurboMIDI SYSEX messages start with this sequence:

MIDI Byte | Purpose
------------+----------------------------
$f0 | SYSEX Start
$00 | Europe/USA ID
$20 | Europe ID
$3c | Elektron Music Machines MAV ID
$00 | Generic Elektron product ID
$00 | Base channel (Padding)

A complete SYSEX message looks like this:

$f0,$00,$20,$3c,$00,$00,command,...,$f7

SYSEX turbomidi speed request

MIDI Byte | Purpose
------------+----------------------------
(SYSEX init)|
$10 | Speed request ID
$f7 | SYSEX end

SYSEX turbomidi speed answer

MIDI Byte | Purpose
------------+----------------------------
(SYSEX init)|
$11 | Speed answer ID
%aaaaaaaa | bit 0 = speed 2, bit 1, = speed 3.3...
%00000bbb | bit 0 = speed 13.3x, bit 1 = speed 16x,
| bit 2 = speed 20x
%cccccccc | contains certified speed bits
%00000bbb | contains certified speed bits
$f7 | SYSEX end

SYSEX turbomidi speed negotiation (master)

MIDI Byte | Purpose
------------+----------------------------
(SYSEX init)|
$12 | Speed negotiaton ID
%0000aaaa | Speed 1 value
%0000bbbb | Speed 2 value
$f7 | SYSEX end

SPEED1 >= SPEED2 (= if certified)
SPEED1, SPEED2 = 1 requires no handshaking

SYSEX turbomidi speed acknowledgement (slave)

MIDI Byte | Purpose
------------+----------------------------
(SYSEX init)|
$13 | Speed acknowledgment ID
$f7 | SYSEX end

Acknowledge sent upon SPEEDNEG, always sent at 1xMIDI_SPEED
After speed acknowledgement is received SPEED1 is set on
both the master and slave device

SYSEX turbomidi speed test (master)

MIDI Byte | Purpose
------------+----------------------------
(SYSEX init)|
$14 | Speed test (master) ID
$55 |
$55 |
$55 |
$55 |
$00 |
$00 |
$00 |
$00 |
$f7 | SYSEX end

Before the speedtest the master should allow the slave some
breathing by sending 16 0x00 bytes to allow setting of speed
and resetting of UART

SYSEX turbomidi speed result (slave)

MIDI Byte | Purpose
------------+----------------------------
(SYSEX init)|
$15 | Speed test (result) ID
$55 |
$55 |
$55 |
$55 |
$00 |
$00 |
$00 |
$00 |
$f7 | SYSEX end

Advertising