Advanced
SysEx
Send raw System Exclusive messages from any gamepad input. F0 ... F7 framing, manufacturer IDs, and the bytes that flip switches inside hardware synths.
Updated
SysEx — System Exclusive — is the escape hatch in MIDI, the place anything not covered by the standard goes: patch dumps, firmware uploads, secret parameters, vendor-specific everything. Universal Controller MIDI lets you fire arbitrary SysEx blobs from any button, trigger, or stick.
If your synth has a feature the front panel can't reach, there's almost certainly a SysEx command for it.
The framing
Every SysEx message is bracketed by F0 (status start) and F7 (status end). Between them: a manufacturer ID (1 or 3 bytes), a device ID, and the payload. Every payload byte must be 7-bit — 0x00 to 0x7F. Anything 0x80 or higher is reserved for status bytes and will corrupt the stream.
# Korg Volca Sample — set part 1 sample number to 12
F0 42 30 00 01 2D 0C 00 F7
# ^^ ^^ ^^ ^^^^ ^^ ^^ ^^
# | | | model | | end
# | | device | param value
# Korg ID Korg fn Authoring SysEx in the mapping editor
In the mapping editor, set the output type to SysEx and paste a hex string. Spaces are optional. The F0/F7 framing is added for you if missing — but never wrong to include it. For dynamic payloads, use {value} to inject the current input value as a 7-bit byte; e.g. F0 41 10 42 12 40 00 04 {value} F7 for a Roland JV-style filter cutoff.
{
"input": "RT",
"output": {
"type": "sysex",
"bytes": "F0 41 10 42 12 40 00 04 {value} F7",
"value_range": [0, 127],
"value_curve": "linear"
}
} Common manufacturer IDs
The 1-byte IDs are the originals; 3-byte IDs (prefixed with 00) were added when the namespace ran out. Reference table for the ones you'll hit most often:
| Manufacturer | ID (hex) | Notable devices |
|---|---|---|
| Sequential / Dave Smith | 01 | Prophet 5/6/10, Pro 3, OB-6 |
| Roland | 41 | JV/JD series, Juno-X, MC-707, Fantom |
| Korg | 42 | Minilogue, Wavestate, Volca, Opsix |
| Yamaha | 43 | DX7, Reface, Montage, Genos |
| Akai | 47 | MPC range, Force, APC controllers |
| Native Instruments | 00 21 09 | Maschine, Komplete Kontrol, Traktor |
| Elektron | 00 20 3C | Digitakt, Octatrack, Analog Rytm |
| Arturia | 00 20 6B | MicroFreak, MatrixBrute, PolyBrute |
| Universal Non-Realtime | 7E | Identity request, sample dump |
| Universal Realtime | 7F | MMC transport, MIDI Tuning Standard |
Real-time vs bulk
Realtime SysEx (parameter change) is short, fast, fine on a per-input basis — fire it from a button or stick all day. Bulk SysEx (patch dumps, firmware) is long, can be 10 KB+, and shouldn't be tied to a held input. Trigger bulk transfers from a single button press, not a continuous source.
Real-world scenarios
SysEx earns its place when you need to do something the synth pretends isn't possible:
- Prophet 6 voice-mode toggle. Map
Triangleto sendF0 01 2D 06 12 ... F7— instant flip between poly / mono / unison without diving into the menu mid-track. - Roland MC-707 scene recall. D-pad sends scene-change SysEx (Roland scene-change CC isn't enough for full state). Four scenes on one cross-pad.
- Elektron Digitakt pattern jump. Face buttons fire the pattern-change SysEx with sample-accurate quantisation that the standard Program Change can't guarantee.
- NI Maschine Jam-style page flip. Touchpad swipe sends Maschine's group/page SysEx so you control hardware Maschine from a DualSense as if it were a Jam.
- DX7 patch initialise. Hold
Share + L3to push a fresh init patch — perfect when you've FM-ed yourself into a corner during sound design.
SysEx is a Pro feature. Free maps notes and CCs only.