Skip to main content
Electronic Theatre Controls Inc

MIDI in Express

MIDI (Musical Instrument Digital Interface) is a digital communication protocol that allows you to interconnect musical instruments and digital electronic equipment, such as lighting control consoles.

 The console supports MIDI Show Control 1.0 (MSC) and a subset of MIDI known as ETC MIDI. If you are not familiar with MIDI and would like more information on how it works, Control Systems for Live Entertainment, by John Huntington, includes several sections that deal with the subject.

ETC MIDI

The console both transmits and receives MIDI messages with any MIDI instrument. The MIDI protocol can control cues, macros, submaster bump switches and the level wheel.

ETC assumes that MIDI users have a working knowledge of MIDI. This section provides ETC MIDI interface information, message formats and message definitions. See Installing MIDI for installation information.

Configuring ETC MIDI

The console operates at all times in MIDI Mode 3 or Omni = off/Poly. This means it only receives or transmits MIDI commands on the user-selected channel.

Configure the console for ETC MIDI by specifying the MIDI channel number. Be sure your MIDI gear is set to the same channel. The console remembers the selected MIDI channel the next time it is turned on.

The procedure for selecting the MIDI channel is given below:

1. Press [Setup]. Go to the setup display
2. Press [6] [Enter]. Selects the Options Settings menu
3. Press [1] [Enter]. Prompt reads:
Select MIDI channel (#1 through 16), or press DISABLE MIDI to disable MID
4. Enter a number between 1 and 16.a Specifies MIDI channel
5. Press [Enter]. Completes the ETC MIDI setup

a. Press [S1], Disable MIDI, here to disable ETC MIDI.

ETC MIDI message formats

The following table lists MIDI message formats used to control the console. All numbers are in hexadecimal format.

Note off message format

<8n><kk><vv>  
8 Note off status
n MIDI channel number (0-F)
kk Key number (0-7F)
vv Note off velocity (0-7F)

Note on message format

<9n><kk><vv>  
9 Note on status
n MIDI channel number (0-F)
kk Key number (0-7F)
vv Note on velocity (0-7F)
[00=Note off]

Control change message format

<Bn><kk><vv>  
B Control change status
n MIDI channel number (0-F)
kk Control number (70-92)
vv Control value (0-7F)

Program change message format

<Cn><kk>  
C Program (patch) change status
n MIDI channel number (0-F)
kk Program number (0-7F)

Pitch bend message format

<En><ll><mm>  
E Pitch bend status
n MIDI channel number (0-F)
II Least significant 7 bits of pitch bend value (0-7F)
mm Most significant 7 bits of pitch bend value (0-7F)

MIDI Message definitions

Submaster bump switch execution

A Note On message will bump a submaster.

A Note Off message will unbump a submaster.

A Note On message with a velocity of 0 is equivalent to a Note Off message and will be interpreted as such by the console. Otherwise, the velocity value of Note messages does not matter.

Submasters bumped via MIDI Note messages will respect the Upfade, Dwell, and Downfade times defined for that submaster. However, dwell settings of Man and Hold are treated the same for the purposes of MIDI Note triggering; the sub will bump when a Note On message is received, and unbump when a Note Off message is received.

Submasters 1 - 12 MIDI note 60 - 71 (hexadecimal) C4 - B4 (musical notation)
Submasters 13 - 24 MIDI note 72 - 83 (hexadecimal) C5 - B5 (musical notation)
Note-Icon-new.png Note: C4 is middle C, or MIDI note 60 in hexadecimal.

Cue execution in AB fader pair

Next cue Program change 0
Cues 1 - 127 Program change 1 - 127
Cues 128 - 255 Control change 70, parameters 0 - 127
Cues 256 - 383 Control change 71, parameters 0 - 127
Cues 384 - 511 Control change 72, parameters 0 - 127
Cues 512 - 639 Control change 73, parameters 0 - 127
Cues 640 - 767 Control change 74, parameters 0 - 127
Cues 768 - 895 Control change 75, parameters 0 - 127
Cues 896 - 999 Control change 76, parameters 0 - 103

Cue execution in CD fader pair

Next cue Control change 77, parameter 0
Cues 1 - 127 Control change 77, parameters 1- 127
Cues 128 - 255 Control change 78, parameters 0 - 127
Cues 256 - 383 Control change 79, parameters 0 - 127
Cues 384 - 511 Control change 80, parameters 0 - 127
Cues 512 - 639 Control change 81, parameters 0 - 127
Cues 640 - 767 Control change 82, parameters 0 - 127
Cues 768 - 895 Control change 83, parameters 0 - 127
Cues 896 - 999 Control change 84, parameters 0 - 103

Macro execution

Macros 1 - 127 Control change 85, parameters 1 - 127
Macros 128 - 255 Control change 86, parameters 0 - 127
Macros 256 - 383 Control change 87, parameters 0 - 127
Macros 384 - 511 Control change 88, parameters 0 - 127
Macros 512 - 639 Control change 89, parameters 0 - 127
Macros 640 - 767 Control change 90, parameters 0 - 127
Macros 768 - 895 Control change 91, parameters 0 - 127
Macros 896 - 999 Control change 92, parameters 0 - 103

Level change wheel

Wheel “ticks” Pitch bend value 
(hexadecimal)
Message values 
(decimal)
0 2000 ll=0 mm=64
+1 2001 ll=1 mm=64
ll=1 mm=64 1FFF ll=127 mm=63
+8191 (+12.5%) 3FFF ll=127 mm=127
-8192 ( -12.5%) 0 ll=0 mm=0
+655 (+1%) 228F ll=15 mm=69
-655 (-1%) 1D71 ll=113 mm=58

MIDI Show Control (MSC)

The consoles recognize the following MSC commands, which may be either transmitted or received (all other commands are ignored):

  • Go
  • Stop
  • Resume
  • Fire

Configuring MIDI Show Control

The console can receive MSC information, send MSC information, or both. Enable the sending and receiving of MSC information by specifying the device(s) that will act as the sender and receiver with respect to the console.

The sending and receiving device numbers are disabled by default. To enable these devices, proceed as follows:

1. Press [Setup]. Go to the setup display
2. Press [6] [Enter]. Selects the Options Settings menu
3. Press [2] [Enter]. Prompt reads:
Select MIDI receiver device (#0 - 126), or press DISABLE MIDI to disable MIDI Show Control
4. Enter a number from 0 to 126.a Specifies the number of the device that will send to the console (console is the receiver)
5. Press [Enter]. Prompt reads:
Select MIDI transmitter device (#0 - 126), or press DISABLE MIDI to disable MIDI Show Control
6. Enter a number from 0 to 126.b Specifies the number of the device that will transmit the MSC signal
7. Press [Enter]. Completes the setup

If the MIDI receiver device had been previously specified, press [S1], Disable MIDI, here to remove that specification.
If the MIDI transmitter device had been previously specified, press [S1], Disable MIDI, here to remove that specification.

MSC commands received by the console

Consoles enabled for MSC accept the following MSC commands. When the console receives one of these commands, it executes the command immediately. In order to accept MSC commands, the console’s receiver Device ID must match the target device ID for the MIDI device sending the signals.

Go

  • If no cue number is sent, Go presses [A/B Go] on the console. The next cue on the cue list runs in the A/B fader.
  • If a cue number is sent, the specified cue runs on the A/B fader.
  • If a cue number is sent, and 2 is sent as the list entry, that cue runs on the C/D fader.
  • If cue 0 is sent, and 2 is sent as the list entry, the command presses [C/D Go]. The pending cue runs in the C/D fader. You may also press [A/B Go] by sending Go-Cue 0-1.

Stop

  • The Stop command by itself holds all fades in both fader pairs.
  • If Stop is sent with a cue number and a list entry of 1, only the cue running in the A/B fader holds.
  • If Stop is sent with a cue number and a list entry of 2, only the cue running in the C/D fader holds.
  • The cue number field is ignored, but must be included if a list entry is sent.

Resume

  • The Resume command by itself resumes all holding fades in both fader pairs.
  • If Resume is sent with a cue number and a list entry of 1, only a cue holding in the A/B fader resumes.
  • If Resume is sent with a cue number and a list entry of 2, only the cue holding in the C/D fader resumes.
  • The cue number field is ignored, but must be included if a list entry is sent.

Fire

  • The Fire command executes a specified macro. Macro number must be in the range 1-127. If no macro is specified, or if the macro number is out of range, the command is ignored.

MSC commands transmitted by the console

MIDI Show Control (MSC) allows the console to send the following commands to MIDI devices. If MSC output is enabled on the console, the console automatically sends the MSC commands. The console’s transmitter Device ID must match the device ID for the MIDI device receiving the signals.

[A/B Go]

  • If a cue is pending, the console transmits [A/B Go] with cue number and a list entry of 1.
  • If a cue is holding, the console transmits [A/B Resume] with cue number and a list entry of 1.

[C/D Go]

  • If a cue is pending, the console transmits [C/D Go] with cue number and a list entry of 2.
  • If a cue is holding, the console transmits [C/D Resume] with cue number and a list entry of 2.

[A/B Hold]

  • If a cue is running, the console transmits [A/B Stop] with cue number and a list entry of 1.

[C/D Hold]

  • If a cue is running, the console transmits [C/D Stop] with cue number and a list entry of 2.

Macros

  • For macros 1-127, the console transmits Fire with the macro number.

MSC frame packet to run a cue:

An MSC frame packet consists of several bytes. Byte types, their hexidecimal values and explanations are given in the table below.

Byte type Value (Hex) Explanation 
Start Byte F0 Start of System Exclusive Message
  7F Start of message
Send Channel   Send transmit channel number or 7F = “All Call” for system wide broadcasts
System Exclusive Message 2 Indicates System Exclusive Message is MIDI Show Control
“Lighting” command format 01 User can send 7F = “All Types”
“GO” general command    
Cue number   Cues numbered 0–9 are represented in an MSC frame as hexidecimal 30–39. For decimal cues, the point character is represented by hexidecimal 2E.
Delimiter 00  
Faders 31 or 32 Console faders are toggled by changing the Cue List number, with fader A/B represented by 31 and fader C/D represented by 32, both hexidecimal.
Delimiter 00  
Stop Byte F7 End of System Exclusive Message

Examples

In the examples below, MSC frame packets are sent using transmit channel 66 (42 hexidecimal).

GO                        
Go A/B: F0 7F 42 02 01 02 30  00 31 00 31 F7
Go C/D F0 7F 42 02 01 01 30 00 32 00 31 F7
GO CUE                          
Cue1 A/B fader: F0 7F 42 02 01 01 31 00 31 00 F7    
Cue 5.6 A/B fader: F0 7F 42 02 01 01 35 2E 36 00 31 00 F7
Cue10 A/B fader: F0 7F 42 02 01 01 31 30 00 31 00 F7  
Cue350 A/B fader: F0 7F 42 02 01 01 33 35 30 00 31 00 F7
Cue1 C/D fader: F0 7F 42 02 01 01 31 00 032 00 F7    
Cue2 C/D fader: F0 7F 42 02 01 01 32 00 32 00 F7    
Cue987 C/D fader: F0 7F 42 02 01 01 39 38 37 00 32 00 F7
STOP                        
Stop A/B: F0 7F 42 02 01 02 30 00 31 00 31 F7
Stop C/D: F0 7F 42 02 01 02 30 00 32 00 31 F7
STOP CUE                        
Cue 50 A/B Hold: F0 7F 42 02 01 02 35 30 00 32 00 F7
Cue 50 C/D Hold: F0 7F 42 02 01 02 35 30 00 31 00 F7
RESUME                        
Resume A/B: F0 7F 42 02 01 03 30 00 31 00 31 F7
Resume C/D: F0 7F 42 02 01 03 30 00 32 00 31 F7
RESUME CUE                        
Cue 50 A/B Resume: F0 7F 42 02 01 03 35 30 00 31 00 F7
Cue 50 C/D Resume: F0 7F 42 02 01 03 35 30 00 32 00 F7
FIRE MACRO (Macros are limited to 1 - 127)          
Macro 3: F0 7F 42 01 07 03 F7
Macro124 F0 7F 42 01 07 7C F7
  • Was this article helpful?