| Note - To help simplify the following descriptions, the actual data defined by the Class is refered to as the "primary" data. If the Class uses an option, the option's data immediately follows the "primary" data. |
| Byte # | Value HEX | Description | Notes |
| 1 | F0 | Sysex ID (Start) | |
| 2 | 06 | Lexicon ID | |
| 3 | 0bbb bbbb | Product ID | |
| 4 | 0bbb bbbb | Device ID | 0-127 transmit, 0-126 receive |
| 5 | 01 | Message type | Data Message |
| 6-9 | 0n | Number of bytes (2 bytes) | This is the number of bytes in the Class and its option (if available). This is a 16 bit field so up to 64K bytes is supported. |
| 10-x | 0n | data | This is the actual data and (if available) it's option's data. Option data always appears after the primary data. Use the number of bytes field of the Class and option's description to determine where the primary data ends and the option begins. |
| -- | 0n | Number of control levels (2 bytes) | This field defines how many control levels are used in the Class's address. This is a 16 bit field so the address can have up to 64k digits (control levels) (max is defined in the "System Configuration" message) |
| -- | 0n | Control level 0 (A) (address) (2 bytes) | This is the first control level. It defines the level 0 (A) control address of the Class. The control level addresses are 16 bit fields so the control addresses can be 64k deep. Note that letters are used to help differentiate between levels and their values. |
| -- | 0n | Control level 1 (B) (address) (2 bytes) | same as previous |
| -- | 0n | Control level 2 (C) (address) (2 bytes) | same as previous |
| -- | 0n | --- up to Control level 65535 | same as previous |
| --- | 0n | Checksum | This is an optional "Checksum" field. The checksum is the low 7 bits of the sum of all preceeding bytes in the message following the "Message Class". |
| F7 | End of Sysex |
The "Control Levels" are used in the request message for this packet:
0n - Number of Control Levels (lo nib) (Nibble 1 of argument)
0n - Number of Control Levels (lo mid nib) (Nibble 2 of argument)
0n - Number of Control Levels (hi mid nib) (Nibble 3 of argument)
0n - Number of Control Levels (hi nib) (Nibble 4 of argument)
0n - Control Level 0 (A) (lo nib) (Nibble 5 of argument)
0n - Control Level A (lo mid nib) (Nibble 6 of argument)
0n - Control Level A (hi mid nib) (Nibble 7 of argument)
0n - Control Level A (hi nib) (Nibble 8 of argument)
0n - Control Level 1 (B) (lo nib) (Nibble 9 of argument)
0n - Control Level B (lo mid nib) (Nibble 10 of argument)
0n - Control Level B (hi mid nib) (Nibble 11 of argument)
0n - Control Level B (hi nib) (Nibble 12 of argument)
...
For example, to request Program - EQ - 1 Band (M) - Gain (control
address A:0, B:2, C:1, D:2) on an MPX 1 system
with the Device ID set for 0, send:
| request header | request class | Num Control levels |
| F0 06 09 00 06 | 01 00 | 04 00 00 00 |
| Level A
(Program) |
Level B
(EQ) |
Level C
(1 Band (M)) |
Level D
(Gain) |
End of
SysEx |
| 00 00 00 00 | 02 00 00 00 | 01 00 00 00 | 02 00 00 00 | F7 |
| header | Number of
data bytes |
data | Num Control levels |
| F0 06 09 00 01 | 01 00 00 00 | 00 00 | 04 00 00 00 |
| Level A
(Program) |
Level B
(EQ) |
Level C
(1 Band (M)) |
Level D
(Gain) |
End of
SysEx |
| 00 00 00 00 | 02 00 00 00 | 01 00 00 00 | 02 00 00 00 | F7 |
To request a display dump (control address A:1, B:8, C:1)
on an MPX 1 system with the Device ID set for 0, send:
| request header | request type | Num Control levels |
| F0 06 09 00 06 | 01 00 | 03 00 00 00 |
| Level A
(System) |
Level B
(Panel) |
Level C
(Display) |
End of
SysEx |
| 01 00 00 00 | 08 00 00 00 | 01 00 00 00 | F7 |
| header | Number of
data bytes |
data |
| F0 06 09 00 01 | 0F 03 00 00 | 02 02 05 06 07 02 06 00 00 0D 04 09 06 08 07 00 02 00 02 00 02 0C 04 05 06 06 07 05 06 0C 06 0C 03 0E 03 00 02 00 02 00 02 00 02 00 02 00 02 00 02 05 02 00 02 00 02 00 02 00 03 04 06 02 04 |
| Num Control levels | Level A
(System) |
Level B
(Panel) |
Level C
(Display) |
End of
SysEx |
| 03 00 00 00 | 01 00 00 00 | 08 00 00 00 | 01 00 00 00 | F7 |