LUSP Data Message (01 hex)
This message allows all types of data to be passed to and from the system. Typically this message type is used to change parameter values in a system remotely (automation, etc) and to dump data (programs, setups, etc...) in and out of the box.
 
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. 
Like most of the LUSP messages, this message uses control addresses to specify exactly which parameter or data type in the system we are trying to access.
Transmit + Receive only
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 
Note that the "data" includes any "Option" data associated with the Class. For example a 16 bit "Data Type" with an 8 bit option would contain 3 bytes of data. The Class of both the main data object and it's option must be used to correctly interpret the "data" in this message.

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 
                
A typical return message is as follows:
 
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 
A typical return message is as follows:
 
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