Understanding the MSC Commands Eos Family Receives and Transmits
Background
The type of MSC (MIDI Show Control) commands Eos, Ion, and Element can take or send are very specific and preprogrammed into the software. The literal information is transmitted via a special language called a "hexadecimal string." In particular, MIDI Show Control is a subset of the MIDI standard known as "SysEx," or System Exclusive, which is typically shown in a hexadecimal format. Most of the time, users interface with a software program that can translate simple information, like "Go Cue#" and "Macro#", into this hexadecimal string. On very rare occasions, someone may ask you "What is the hex string I'm supposed to send to the console?" This article attempts to break down the hexadecimal string the console looks for to trigger these commands.
A MIDI Show Control (MSC) Hexadecimal String
This is a basic hexadecimal string the console will read:
F0 7F 01 02 01 01 31 00 32 F7
This is what that same string looks like, but with the parts you can change to identify specific commands:
F0 7F [device_ID] 02 01 [command] [command_number] F7
Therefore, this message could be read by a human as:
F0 7F [device_ID 1] 02 01 [Go Cue] [Cue 1] 00 [Cue List 2] F7
So what do these mean?
Parts of the MSC Message
Device_ID
The console will respond to a range of IDs between 0-126, and ID 127 (which is an "All Call"). It will transmit to IDs between 0-126. Since this is only one digit of hexadecimal (which is one set of two numbers), the numbers are not always straightforward. An ID of "1" for example is "01." An ID of "26" is "1A." Hexadecimal is wacky, so just use this calculator to determine which number should go in this portion of the string:
http://ascii-table.com/calculator.php
The device_ID can be set on the Eos in Browser > Setup > System Settings > Show Control > MIDI. This is applicable for both transmit and receive of MSC.
Command
The command is established by the MSC standard, and Eos can trigger one of five commands:
01 |
Go Cue |
02 |
Pause Cue |
03 |
Resume Paused Cue |
06 |
Set Submaster, Master Playback Faders, or Grandmaster |
07 |
Fire Macro |
Note that there is no "Back" command - instead, a "Go Cue" of the previous Cue# needs to be sent.
Types of Command Numbers
Command_number refers to the number of the macro, fader, or cue you're firing.
Firing Macros (07)
Macros have the simplest string to deal with. You can only fire macros 1-127, and this is represented by one hexadecimal digit. Use the calculator above to figure out the number.
Macro number example:
On Eos: Macro 2
In Hexadecimal: 02
On Eos: Macro 57
In Hexadecimal: 39
Setting Submasters (06)
Three simple rules:
- You can only set submasters 1-127.
- You must use a "00" when separating the fader number from the set level.
- You must use a "00" after the level.
Remember, this is all in hexadecimal, so use the calculator above to figure out what the number should be for both the fader and the level.
Set submaster examples:
On Eos: Submaster 3 @ 50%
In Hexadecimal: 03 00 32 00
On Eos: Submaster 10 @ 75%
In Hexadecimal: 0A 00 4B 00
Setting Master Playback Faders and Grandmaster
The master playback fader "up" is represented by the number 128, and the master playback fader "down" is represented by the number 129. The grandmaster is represented by the number 510. Since MSC is 7-bit hexadecimal, any number above 127 cannot be expressed as true hexadecimal in the string. For this reason, master playback faders and grandmaster must be represented in another way.
Four simple rules:
- Master playback fader "up" is represented in the string as "00 01."
- Master playback fader "down" is represented in the string as "01 01."
- Grandmaster is represented in the string as "7E 03."
- You do NOT need to use the "00" separator between the master playback faders/grandmaster and the set level.
- You DO need to use "00" after the level for the master playback fader or grandmaster. See the examples below.
Set Master Playback Faders and Grandmaster examples:
On Eos: Master Playback Up Fader @ 75%
In Hexadecimal: 00 01 4B 00
On Eos: Master Playback Down Fader @ 50%
In Hexadecimal: 01 01 32 00
On Eos: Grandmaster @ 75%
In Hexadecimal: 7E 03 4B 00
Go, Pause, and Resume Cue (01, 02, 03)
In terms of cues, Eos can potentially deal with all the available cues, so this gets a bit tricky since hexadecimal doesn't deal with decimals. The numbering scheme then is not hexadecimal.
Three simple rules:
- Place a "3" in front of every digit of the number.
- Place a "2E" wherever there is a decimal.
- Place a "00" when separating a cue number from a cue list.
This can be represented by:
On Eos: Cue xy/ab.c
In Hexadecimal: 3a 3b 2E 3c 00 3x 3y
Cue number examples (using Device_ID 1):
On Eos: Cue 1/54
In Hexadecimal: 35 34 00 31
Complete message: F0 7F 01 02 01 01 35 34 00 31 F7
On Eos: Cue 4/987
In Hexadecimal: 39 38 37 00 34
Complete message: F0 7F 01 02 01 01 39 38 37 00 34 F7
On Eos: Cue 12/56.7
In Hexadecimal: 35 36 2E 37 00 31 32
Complete message: F0 7F 01 02 01 01 35 36 2E 37 00 31 32 F7
Examples
* The intention of this article is to distill the information down to only relevant numbers in the command string as it refers to Eos-family consoles. This article only scratches the surface for explaining all of the elements of an MSC command.