This is the old Camdram

Return to

MIDI Show Control

It is often useful to connect QLab (the software frequently used to play back sound effects) to other devices in the theatre (e.g. the sound and lighting desks) in order to automate cues and reduce the number of ops required. Common scenarios include:

* A mainshow (which only has a few sounds effects) wants to avoid stitching a sound op for each performance, so links QLab to the lighting desk, so that when the lighting cue 'Go's into certain cues, the sound effects are automatically triggered.
* A complex musical might have a similar set-up above so that the sound op can concentrate on the sound re-enforcement without having to pay attention to cues
* A complex touring show, which is performing the same set of cues at multiple venues, creates a QLab file which contains MSC (MIDI show control) cues, which remotely control whatever lighting desk is present at each venue.
* A lateshow, with a very small technical team, creates a QLab show file which contains audio cues and MSC cues, and QLab is run from a laptop on the stage manager's desk with no additional ops.
* A show has a sequence of lighting and sound effects that must be precisely synchronised (e.g. a lightning effect).

The two basic set-ups which cover the scenarios are explained below.

QLab controlling the ETC Ion

This is useful if the show has many sound/video cues in relation to the number of lighting cues, if you want to avoid the need for an LX op, or if you're performing the same show at multiple venues.

'MSC Receive' must be turned on for the show file on the Ion. To do this, open the browser, navigate to 'Show Setup', then click 'Show Control'. Ensure 'MSC Receive' is enabled, and select an arbitrary value between 0 and 15 for the 'MSC Receive Channel' (it may be a good idea to select a different channel for the mainshow and lateshow to avoid the wrong cues firing).

Plug a USB-MIDI adapter (the ADC owns two, which are kept in the bottom sound drawer) between the Mac and the Ion. Go to the QLab preferences, and click the 'MSC' option on the left. Connect 'Patch 1' to 'USB MIDI' by dragging between the two circles.

To create a cue which triggers a lighting cue on the Ion, create an 'MSC' cue. The most important value is the 'Q Number', which corresponds to the cue number on the Ion you wish to trigger. The other options are:
* Output Patch: corresponds to the 'patch' number used in the previous paragraph (i.e. 1)
* Command Format: selects which sort of equipment (e.g. lighting, sound, projection) should respond to the cue. The Ion responds to 'All Types', and presumably others including 'Lighting (General)' although I've never tested it.
* Command: 'GO' most often used. For other commands, see below.
* Device ID: This must correspond to the 'MSC Receive Channel' selected on the Ion.
* Q List: blank by default, which causes the active cue list to be used
* Q Path: This is part of the MSC spec, but I don't think the Ion uses this

ETC Ion controlling QLab

This is useful if the show has lighting ops and only a few sound cues.

The Ion can be configured to transmit an MSC 'Go' command whenever the active cue is changed on the Ion (e.g. by pressing 'Go', 'Stop/Back', 'Go to cue', but not with follow-ons (I think)). To do this 'MSC Transmit' must be turned on for the show file. Open the browser, navigate to 'Show Setup', then click 'Show Control'. Ensure 'MSC Transmit' is enabled, and select an arbitrary value between 0 and 15 for the 'MSC Transmit Channel'.

In the QLab file, open the preferences and click 'Remote Control' on the left. Ensure that 'Use MIDI Show Control' is checked and that 'Use Device ID' matches the 'MSC Transmit Channel' selected above.

Give all cues in Qlab and cue number corresponding to a cue number on the Ion. You may well have to create dummy lighting cues which do not change the lighting state specifically to trigger QLab cues.

A disadvantage of this method is that the default 'load' behaviour of QLab (whereby it automatically pre-loads the first part of the next audio/video cue into RAM when the previous cue is fired) does not work, which is by design. It does however work if QLab receives a 'GO' command without a cue number specified, which cause QLab to simply fire the next cue (this sort of command cannot be fired by the Ion).

Controlling other devices

MSC is a fairly old standard, and therefore a surprising number of lighting desks have MIDI ports and support it. A few fairly random notes:
* The ETC Express series does not respond to MSC messages if the Command Format is 'All Types' - it must be 'Lighting (General)' or it will ignore the command.
* Zero 88 seemed to take longer to catch onto the MSC bangwagon. The Jester which is in the Larkum supports it, but many older desks don't.
* There's an infamous out-by-one difference with MIDI messages, including with MSC channel numbers/device ids, caused by some devices starting at 1 and others at 0. Both QLab and the ETC Ion use numbers starting from zero, but if something isn't working, try adding/subtracting one.

A wide variety of devices (e.g. sound equipment and keyboards) can be controlled using other types of MIDI messages (e.g. Note On/Off, Program Change, Control Change, SysEx), all of which are supported by QLab (using 'MIDI' or 'MIDI SysEx' cues instead of 'MSC' cues). The exact implemention varies from device to device, and the best source of information is usually the instruction manual (e.g. see chapter 17 of the Yamaha M7CL's manual for details about how to remotely almost every parameter on the desk). Sometimes, this is published as a separate document called the 'MIDI Specification' or something. The out-by-one problem is also present here.

If you wish to control more than one device from QLab, your best option using the equipment at the ADC is probably to use two USB-MIDI adapters and connect one output to each device. Alternatively, a MIDI active splitter could be used. I have also successfully used the parallel fields on the patch bay to split a MIDI signal (from QLab -> Ion + M7).

Note that as QLab can be send and receive MSC, one computer running QLab can be made to control another computer running QLab, which may be useful on a particularly complicated show. MacOS has built-in support for sending MIDI over a network, which may be useful for these sorts of setups.

Transmitting MIDI over longer distances

If you wish to transmit MIDI signals over longer distances at the ADC (e.g. to the SM desk or plot desk), the audio tie lines and patch system can be used. At the time of writing, the ADC has 3 adapters (one-and-a-half pairs) to convert between MIDI and XLR connections at either end, which are kept in the bottom sound drawer.

More details on MSC

MSC (MIDI Show Control) is a specific form of MIDI SysEx (system exclusive) command. SysEx messages are a part of the MIDI specification designed for arbitrary strings of data of any length, which always start with F7 and end with F0. A typical MSC command might look like:

F0 7F 01 02 7F 01 32 2E 35 F7

The purpose of each byte of the message is explained below:

F0: MIDI SysEx start byte

7F: Denotes that this is a MIDI Universal Real Time System message (MSC is a subset of this)

01: The device ID (or 'channel' as it is called on the Ion), in this case 1

02: Denotes that this is a MIDI Show Control message

7F: The 'Command Format' - the type of device at which this message is targetted. 7F denotes 'All Types'. Others include 01 lighting (general), 10 for sound (general), and 61 for fireworks(!!)

01: The MSC command to send. 01 denotes 'Go'. Others include 02 Stop, 03 Resume, 04 Timed Go, 05 Load, 06 Set, 07 Fire, 08 All Off, 09 Restore, 0A Reset, 0B Go Off, 11 Standby+, 12 Standby-, 13 Sequence+, 14 Sequence-. Different devices understand different subsets of these, e.g. for Qlab see here, and for the Ion see here.

32 2E 35: The cue number. It is in ASCII, so the bytes 30-39 are used. For point cues, the period (2E) is used. For most MSC commands, the cue number is optional, in which case the device simply fires the next cue in sequence.

F0: MIDI SysEx stop byte

Therefore, the string above has the effect of telling devices of all types with device id 1 to 'go' to cue 2.5.

For the full details, see []

Last edited Thu 7th Feb 2013 by Peter Hoyes

back to How To...


Search the Infobase:

All Words Any Word Phrase
Search title & keywords only Search title, keywords and content

Click here to log in or, if you don't have one: get a free account...