Skip to main content
Electronic Theatre Controls Inc

MIDI Show Control MSC In Depth Programming Information for Expression

Here are the valid MSC parameter ranges that we allow for both the Obsession and Expression lines. Neither console will respond to a 7F "all device" command format. Labels shown within angle brackets <> can be set. Values shown in hexadecimal must not be changed.

Obsession Format: Obsession will take Lighting GO, STOP, RESUME, LOAD, and FIRE. Please note that MSC List and Cue Path information are ignored and should have no effect on Obsession.
The general format is: (Start) (All-Call) (Device ID) (MSC) (Command Format) (Command ID) (Event Number) (Stop) Shown with the fixed hexadecimal values and variable values indicated by angle brackets <>, this would be seen as:

F0 7F <device ID> 02 01 <command ID> <event number> F7

Expression Format: The Express/Expression console lines will only take Lighting GO, STOP, RESUME, and FIRE. We use an MSC Cue List (which we call "Fader Pair") value of 31 for the A/B fader and 32 for the C/D pair instead of the Cue Path byte like some other consoles.
(Start) (All-Call) (Device ID) (MSC) (Command Format) (Command ID) (Event Number) (Delimiter) (Fader Pair) (Stop) Shown with the fixed hexadecimal values and variable values shown in angle brackets <>.

This would be seen as:

F0 7F <device ID> 02 01 <command ID> <event number> 00 <fader pair> F7

Variable Declarations:

<device ID>
Valid range of 1 thru 126 (01 thru 7E in Hex). Make sure the device ID on both the receiving and sending devices are the same.
<command ID>
We accept the following command IDs on both consoles:
01 GO
02 STOP
03 RESUME
05 LOAD
07 FIRE
<event number>
Event numbers correspond to cue numbers for GO, RESUME, and LOAD commands and correspond to macro numbers for FIRE commands. Event numbers are strings of hex values that represent each numerical character in a cue number. To create this string of values, you must break down the cue number into a list of single digits. (For instance, 324 would become 3, 2, and 4.) The end of an event number string is signified by a delimiter (hex 00) or a stop bit (for MSC, hex F7). Macro numbers can be in the range of 1 thru 127. Use the table below to cross-reference cue number or macro number digits to hex values. These hex values correspond to the ASCII mapping of the digits 0-9:
Digit Hex Value
0 30
1 31
2 32
3 33
4 34
5 35
6 36
7 37
8 38
9 39
. 2E
For example, consider cue number 2. In hex this would be signified by value 32. For a more complex cue number, 126, we separate each digit into an ASCII value. The 1 would be shown as 31, the 2 as 32, and the 6 as 36. So 126 would be 31 32 36 in ASCII hex values. Adding a decimal point into a cue stretches it out a bit more. 134.5 would be written as 31 for the 1, 33 for the 3, 34 for the 4, 2E for the decimal point, and 35 for the 5. The ASCII hex string for 134.5 would therefore be 31 33 24 2E 35.
<fader pair>
For Expression and Express line consoles, we use the fader pair variable to select the fader pair our MSC cue will play in. Use a Hex value of 31 for the A/B fader or 32 for the C/D pair. Some other console manufacturers (Notably Jands) use the MSC Cue Path parameter instead of the MSC Cue Type parameter (shown here as "fader pair") to load cues to specific faders. Consoles that use Cue Path information instead of Cue Type information for cue routing will not be able to communicate fader pair information with Expression line consoles.

MSC Hex String Examples:

  • To send either the command GO for cue 51.3 to either an Expression line console or Obsession Line console:
F0 7F 01 02 01 01 35 31 2E 33 00 31 F7
  • Simple GO command (Plays next cue)(Plays cue in A/B fader on Express/Expression):
F0 7F 01 02 01 01 00 31 F7
  • Simple Stop command (For A/B fader on Express/Expression):
F0 7F 01 02 01 02 00 31 F7
  • Run Macro 7:
F0 7F 01 02 01 07 37 F7