Meris pedals SysEx format
Meris documentation:
Disclaimer: the information in this page is not "official". Always check the documentation that came with your Meris pedal as well as the Meris website.
Generic MIDI SysEx specification
Ref: https://www.midi.org/specifications/item/table-1-summary-of-midi-message
A MIDI System Exclusive message has the following format:
N
is the number of bytes of the messages.
Offset | Data | Meris | Description |
---|---|---|---|
0 | F0 | Mark the start of the SysEx message | |
1 | id | 0x00 | Manufacturer's ID |
2 | id | 0x20 | Manufacturer's ID |
3 | id | 0x10 | Manufacturer's ID |
4..N-2 | xx | data (N-5 bytes) | |
N-1 | F7 | Mark the end of the SysEx message |
Note: "Japanese Group" manufacturers have only one ID byte. See [https://www.midi.org/specifications-old/item/manufacturer-id-numbers] for more details.
Manufacturer ID used by the Meris pedals is 0x00 0x20 0x10
(in decimal: 00 32 16)
Meris SysEx format
- Offset: index from the start of the SysEx data. First byte (0xF0) has offset 0.
- Bytes: number of bytes to consider for this parameter
Offset | Bytes | Description | Value(s) |
---|---|---|---|
0 | 1 | Start of the SysEx message | 0xF0 |
1 | 3 | Manufacturer ID | 0x00 0x20 0x10 |
4 | 1 | Prod ID (user definable, matches midi channel - 1) | 0..15 |
5 | 1 | Group ID | 01 = pedal series |
6 | 1 | Model number | 0 = Ottobit Jr 1 = Mercury7 2 = Polymoon 3 = Enzo |
7 | 1 | Command | see table below |
8 | 1 | Preset number | 0..15 |
9... | ... | data... | ... |
1 | End of the SysEx message | 0xF7 |
Command byte
Command | Value | Description |
---|---|---|
Preset Request | 0x25 | Ask the pedal to send back the data for the current preset. Please see the notes after this table. The pedal will send back the data with a Preset Data message. |
Preset Data | 0x26 | The sysex message contains the data for a preset. The pedal will immediately applies these settings. |
Globals Request | 0x27 | Ask the pedal to send back its global settings. |
Globals Data | 0x28 | The sysex message contains the global settings data |
Preset Write | 0x29 | Ask the pedal to save the current settings to memory (this will overwrite the currently selected preset). |
Global setting Write | 0x2A | The sysex contain the new value for a specific global setting. |
Notes:
- The Prod ID byte must match the pedal MIDI channel (0=ch. 1, 1=ch. 2, ...).
- The Preset Request command sends back the saved values of the current preset number. The command is "read saved preset", not "read current values".
- The response to a Preset Request is a Preset Data message, with command byte 0x26.
- The Preset Write command is the sysex version of the Press and hold the ALT button on the pedal.
- To read or write a specific preset, one has to first set a Program Change (PC) command to select the preset, then send the Preset Request command.
- The pedal sends back all the MIDI message it receives. These echo messages can simply be ignored.
Examples:
Examples with an Enzo pedal set to channel 1.
Message | Description |
---|---|
F0 00 20 10 00 01 03 25 F7 | Read current Enzo preset (00=chan 1, 01=pedal, 03=Enzo, 25=read-preset) |
F0 00 20 10 00 01 03 29 F7 | Save current preset to memory (00=chan 1, 01=pedal, 03=Enzo, 29=preset-write) |
Loading and saving presets
The Read and Write commands work with the presets saved in the pedal's permanent memory, not the currents settings of the pots and knobs, that may be different from the one saved in the memory.
The preset is always the one currently selected. In order to work with a specific preset (read it, write it), the preset must first be selected with a Program Change command.
Send and write presets:
To send a preset to the pedal, simply send a Preset Data message. This will overwrite the current settings. This does not save the preset in the permanent memory of the pedal. To do that, you have to send a Preset Write message or to press and hold the Alt button on the pedal.
Read presets:
The Request Preset command must be used to read the currently selected preset. The pedal will sent the saved data for that preset.
To read specific preset, a Program Change (PC) command has to be sent first in order to select the preset.
Preset read examples
We use SendMIDI and ReceiveMIDI utilities.
Mercury7 and Enzo ate connected to the MIDI ports of a Focusrite Scarlett interface. Mercury is set to channel 3 and Enzo is set to channel 2.
Mercury7
Mercury7 on channel 3 connected to the MIDI ports of a Focusrite Scarlett interface.
$ sendmidi dev scarlet system-exclusive hex 00 20 10 02 01 01 25
$ receivemidi dev scarlet
system-exclusive hex 00 20 10 02 01 01 26 08 7F 50 70 7F 3F 7F 00 04 58 7F 3F 00 7F 7F 00 00 00 58 50 70 7F 50 7F 00 04 00 7F 3F 00 dec
Enzo
$ sendmidi dev scarlett system-exclusive hex 00 20 10 01 01 03 25
$ receivemidi dev scarlet
system-exclusive hex 00 20 10 01 01 03 26 0A 78 33 7F 7F 41 39 00 00 66 00 00 53 7F 00 00 00 3F 7F 33 7F 7F 41 39 00 00 66 00 00 53 dec
Enzo preset data format
- Offset: index from the start of the SysEx data. First byte (0xF0) has offset=0.
- Bytes: number of bytes to consider for this parameter
Offset | Bytes | Description |
---|---|---|
0 | 1 | Start of the SysEx message (0xF0) |
1 | 3 | Manufacturer ID = 0x00 0x20 0x10 |
4 | 1 | Prod ID (user definable, matches midi channel - 1) |
5 | 1 | Group ID (01 = pedal series) |
6 | 1 | Model # (0=Ottobit Jr, 1=Mercury7, 2=Polymoon, 3=Enzo) |
7 | 1 | Command (see table above) |
8 | 1 | Preset number |
9 | 1 | Pitch (CC 16) |
10 | 1 | Filter (CC 17) |
11 | 1 | Mix (CC 18) |
12 | 1 | Sustain (CC 19) |
13 | 1 | Filter envelope (CC 20) |
14 | 1 | Modulation (CC 21) |
15 | 1 | Portamento (CC 22) |
16 | 1 | Filter type (CC 23) |
17 | 1 | Delay level (CC 24) |
18 | 1 | Ring modulation (CC 25) |
19 | 1 | Filter bandwidth (CC 26) |
20 | 1 | Delay feedback (CC 27) |
21 | 1 | Bypass (CC 14) |
22 | 1 | Envelope type (CC 9) |
23 | 1 | Synth mode (CC 29) |
24 | 1 | Waveshape (CC 30) |
25 | 1 | Tempo (CC 15) |
26 | 1 | Pitch (CC 16) - second value when using EXP |
27 | 1 | Filter (CC 17) - second value when using EXP |
28 | 1 | Mix (CC 18) - second value when using EXP |
29 | 1 | Sustain (CC 19) - second value when using EXP |
30 | 1 | Filter envelope (CC 20) - second value when using EXP |
31 | 1 | Modulation (CC 21) - second value when using EXP |
32 | 1 | Portamento (CC 22) - second value when using EXP |
33 | 1 | Filter type (CC 23) - second value when using EXP |
34 | 1 | Delay level (CC 24) - second value when using EXP |
35 | 1 | Ring modulation (CC 25) - second value when using EXP |
36 | 1 | Filter bandwidth (CC 26) - second value when using EXP |
37 | 1 | Delay feedback (CC 27) - second value when using EXP |
1 | End of the SysEx message (0xF7) |
Mercury7 preset data format
- Offset: index from the start of the SysEx data. First byte (0xF0) has offset=0.
- Bytes: number of bytes to consider for this parameter
Offset | Bytes | Description |
---|---|---|
0 | 1 | Start of the SysEx message (0xF0) |
1 | 3 | Manufacturer ID = 0x00 0x20 0x10 |
4 | 1 | Prod ID (user definable, matches midi channel - 1) |
5 | 1 | Group ID (01 = pedal series) |
6 | 1 | Model # (0=Ottobit Jr, 1=Mercury7, 2=Polymoon, 3=Enzo) |
7 | 1 | Command |
8 | 1 | Preset number |
9 | 1 | Space Decay (CC 16) |
10 | 1 | Modulate (CC 17) |
11 | 1 | Mix (CC 18) |
12 | 1 | Lo Freq (CC 19) |
13 | 1 | Pitch Vector (CC 20) |
14 | 1 | Hi Freq (CC 21) |
15 | 1 | Predelay (CC 22) |
16 | 1 | Mod Speed (CC 23) |
17 | 1 | Pitch Vector Mix (CC 24) |
18 | 1 | Density (CC 25) |
19 | 1 | Attack Time (CC 26) |
20 | 1 | Vibrato Depth (CC 27) |
21 | 1 | Bypass (CC 14) |
22 | 1 | Swell (CC 28) |
23 | 1 | Algorithm (CC 29) |
24 | 1 | not used (always 0) |
25 | 1 | not used (always 0) |
26 | 1 | Space Decay (CC 16) - second value when using EXP |
27 | 1 | Modulate (CC 17) - second value when using EXP |
28 | 1 | Mix (CC 18) - second value when using EXP |
29 | 1 | Lo Freq (CC 19) - second value when using EXP |
30 | 1 | Pitch Vector (CC 20) - second value when using EXP |
31 | 1 | Hi Freq (CC 21) - second value when using EXP |
32 | 1 | Predelay (CC 22) - second value when using EXP |
33 | 1 | Mod Speed (CC 23) - second value when using EXP |
34 | 1 | Pitch Vector Mix (CC 24) - second value when using EXP |
35 | 1 | Density (CC 25) - second value when using EXP |
36 | 1 | Attack Time (CC 26) - second value when using EXP |
37 | 1 | Vibrato Depth (CC 27) - second value when using EXP |
1 | End of the SysEx message (0xF7) |
Polymoon preset data format
- Offset: index from the start of the SysEx data. First byte (0xF0) has offset=0.
- Bytes: number of bytes to consider for this parameter
WORK IN PROGRESS - DATA TO BE CONFIRMED
Offset | Bytes | Description |
---|---|---|
0 | 1 | Start of the SysEx message (0xF0) |
1 | 3 | Manufacturer ID = 0x00 0x20 0x10 |
4 | 1 | Prod ID (user definable, matches midi channel - 1) |
5 | 1 | Group ID (01 = pedal series) |
6 | 1 | Model # (0=Ottobit Jr, 1=Mercury7, 2=Polymoon, 3=Enzo) |
7 | 1 | Command |
8 | 1 | Preset number |
9 | 1 | Time (CC 16) |
10 | 1 | Feedback (CC 17) |
11 | 1 | Mix (CC 18) |
12 | 1 | Multiply (CC 19) |
13 | 1 | Dimension (CC 20) |
14 | 1 | Dynamics (CC 21) |
15 | 1 | Early modulation (CC 22) |
16 | 1 | Feedback filter (CC 23) |
17 | 1 | Delay level (CC 24) |
18 | 1 | Late modulation (CC 25) |
19 | 1 | Flanger mode (CC 26) 0x00 0x01 0x08 0x05 0x0a 0x7f |
20 | 1 | Flanger speed (CC 27) |
21 | 1 | Bypass (CC 14) Always 127 |
22 | 1 | always 0 |
23 | 1 | Phaser mode (CC 29) |
24 | 1 | Flanger feedback (CC 30) |
25 | 1 | Tempo (CC15) |
26 | 1 | Time (CC 16) - second value when using EXP |
27 | 1 | Feedback (CC 17) - second value when using EXP |
28 | 1 | Mix (CC 18) - second value when using EXP |
29 | 1 | Multiply (CC 19) - second value when using EXP |
30 | 1 | Dimension (CC 20) - second value when using EXP |
31 | 1 | Dynamics (CC 21) - second value when using EXP |
32 | 1 | Early modulation (CC 22) - second value when using EXP |
33 | 1 | Feedback filter (CC 23) - second value when using EXP |
34 | 1 | Delay level (CC 24) - second value when using EXP |
35 | 1 | Late modulation (CC 25) - second value when using EXP |
36 | 1 | Flanger mode (CC 26) - second value when using EXP |
37 | 1 | Flanger speed (CC 27) - second value when using EXP |
1 | End of the SysEx message (0xF7) |
MIDI resources
- MIDI specifications: https://www.midi.org/specifications
- Manufacturer MIDI ID Numbers: https://www.midi.org/specifications-old/item/manufacturer-id-numbers
- http://www.personal.kent.edu/~sbirch/Music_Production/MP-II/MIDI/midi_system_exclusive_messages.htm
- SendMIDI and ReceiveMIDI tools: