Appendix c: sysex reference – Elektron Machinedrum User Manual

Page 118

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 63)
0x04 Current pattern number (A1=0, A2=1, ... B1=16, ...)
0x08 Current song number (0 to 31)
0x10 Current sequencer mode (pattern mode=0, song mode=1)
0x20 Current lock mode (classic=0, extended=1)
0x22 Current track (0 to 15)

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 63)
0x04 Current pattern number (A1=0, A2=1, ... B1=16, ...)
0x08 Current song number (0 to 31)
0x10 Current sequencer mode (pattern mode=0, song mode=1)
0x20 Current lock mode (classic=0, extended=1)
0x22 Current track (0 to 15)

SYSEX set UW sample name:

MIDI Byte | Purpose
------------+----------------------------
(SYSEX init)|
$73 | Set sample name ID
%00aaaaaa | Sample number (0-47 on mkII, 0-31 on mkI)
... | 4 bytes ASCII name (7-bit)
$f7 | SYSEX end

Note 1: This affects samples in the current samplebank only.

Note 2: During sample dumps, sysex data can be sent
in between the sample dump header and the sample data. In
this scenario, the sample number is ignored and is instead
read from the sample dump header.

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