USER GUIDE External Control of LX-300 Matrix3 Audio Show Control System Edition: 2007-09-05 for CueStation 4.6.
Meyer Sound Laboratories Inc 2832 San Pablo Avenue Berkeley, CA 94702 www.meyersound.com T: +1 510 486.1166 F: +1 510 486.8356 © 2007 Meyer Sound Laboratories Inc.
© 2007 Meyer Sound. All rights reserved. External Control Reference The contents of this manual are furnished for informational purposes only, are subject to change without notice, and should not be construed as a commitment by Meyer Sound Laboratories Inc. Meyer Sound assumes no responsibility or liability for any errors or inaccuracies that may appear in this manual.
Table of Contents External Control Basics 7 Message Format Hardware Interface Controlling Automation 11 Types of Automation Controls Recalling Cues and Subcues Cue List Controls Stop, Pause, and Resume Controls SpaceMap® Control Controlling the Mixer 19 Setting Mixer Values Requesting Mixer Values SpecSpace Values Mixer Categories, Indexes, and Values AFL and PFL Examples Output Relay Examples Hardware Status Queries 27 Ping Messages LX-300 Status and Control Log Messages Communication Options
External Control Basics Message Format Hardware Interface 7 9 The Matrix3™ audio show control system can be controlled by external devices by sending specially formatted MIDI messages. This chapter describes the basic structure of these messages. Message Format All messages to the Matrix3 hardware, regardless of the type of serial port used, utilize the MIDI System Exclusive Protocol. Other automation information can be found in Controlling Automation (p. 11).
Message Format Broadcast Messages A Frame ID value of 3F is used to broadcast messages to all LX-300s. The message includes a checksum. Details on calculating the checksum are in the following section. A Frame ID value of 7F means broadcast to all LX-300s without checking the checksum field. You still must include a dummy CHECKSUM byte in the message. The value of the checksum dummy byte should be 0.
Hardware Interface Hardware Interface The Matrix3 hardware supports multiple simultaneous control via all ports. The CommSync module (LX-COS) has two RS-422 ports, an RS-232 port, and MIDI In and Out. The EtherTracks module (LX-ELC) has a 10/100 base T Ethernet port. Each LX-300 can have one LX-COS and one LX-ELC. RS-422 Ports A and B The connector on the LX-COS module is a Female DB9. 38.4K baud, 8 data bits, No parity, 1 Stop bit. Table 1.
Controlling Automation Types of Automation Controls Recalling Cues and Subcues Cue List Controls Stop, Pause, and Resume Controls SpaceMap® Control 11 12 14 16 17 Details are provided in following sections for numerous means of controlling the Matrix3 hardware. In fact, with the information provided, it is possible to design a complete Mixer controller for any computer platform.
Recalling Cues and Subcues Set Fader Position (System Trim) This causes the hardware to set the master system trim level to a designated value. In the case of a fire alarm, it may be required for the show control system to interrogate the current System Trim, and set it to |-inf dB| (off). After the fire alarm is turned off, the show control system could then restore it to its previously set value. Recalling Cues and Subcues Recalling Cues Cues have a 14-bit identifier.
Recalling Cues and Subcues Recall Cue 1 F0 1F 7E 11 3F 1E 01 00 34 F7 Recall Cue 127 F0 1F 7E 11 3F 1E 7F 00 36 F7 Recall Cue 128 F0 1F 7E 11 3F 1E 00 01 34 F7 Recall Cue 255 F0 1F 7E 11 3F 1E 7F 01 35 F7 Recall Cue 256 F0 1F 7E 11 13
Cue List Controls 3F 1E 00 02 33 F7 Request ID of Current Cue F0 = Start message 1F = LCS Audio manufacturers ID 7E = Matrix3 Product ID 25 = External Control Subsystem 3F = Broadcast to all LX-300s (All LX-300s will respond) 40 = Command: Get Current Cue ID 01 = Length of following data XX = Tag Number XX = Calculated checksum value F7 = End message The response of this request message is sent directly back to the requesting computer on the same serial port as it was received.
Cue List Controls Skip to First Cue List entry F0 = Start message 1F = LCS Audio manufacturers ID 7E = Matrix3 Product ID 11 = Cue List Subsystem 3F = Broadcast to all LX-300s 4F = Skip to first entry. Cue is not recalled.
Stop, Pause, and Resume Controls Show Pending Cue F0 = Start message 1F = LCS Audio manufacturers ID 7E = Matrix3 Product ID 11 = Cue List Subsystem 3F = Broadcast to all LX-300s 53 = Show next cue command 40 = Checksum F7 = End message Recall Cue List Entry F0 = Start message 1F = LCS Audio manufacturers ID 7E = Matrix3 Product ID 11 = Cue List Subsystem 3F = Broadcast to all LX-300s 1D = Recall Cue List Entry ID XX = Least significant 7 bits of Cue List ID XX = Most significant 7 bits of Cue List ID XX
SpaceMap® Control 00 = Checksum (not used with 7f but placeholder required) F7 = End message Cancel Fades command F0 = Start message 1F = LCS Audio manufacturers ID 7E = Matrix3 Product ID 10 = sxMixer Subsystem 3F = Broadcast to all LX-300s (7F = broadcast with no checksum) 01 02 00 = Calculated checksum value (use 00 placeholder if broadcast with no checksum) F7 = End message SpaceMap Control The LX-300s can receive external serial or MIDI data to control the panning of matrix buses by the SpaceMap algo
SpaceMap® Control xx = First 7 bits of X coordinate xx = Second 7 bits of X coordinate xx = Last 7 bits of X coordinate yy = First 7 bits of Y coordinate yy = Second 7 bits of Y coordinate yy = Last 7 bits of Y coordinate n1 = Single-byte pan representation n2 = Single-byte divergence representation n3 = Single-byte level representation XX = Calculated checksum value F7 = End message The X coordinate is represented as a little endian 21-bit value, calculated as ix = (x + 1000) * 1000 The Y coordinate is rep
Controlling the Mixer Setting Mixer Values Requesting Mixer Values SpecSpace Values Mixer Categories, Indexes, and Values AFL and PFL Examples Output Relay Examples 19 20 21 23 24 24 Setting Mixer Values Set a Single Mixer Value F0 = Start message 1F = LCS Audio manufacturers ID 7E = Matrix3 Product ID 10 = Mixer Subsystem 3F = Broadcast to all LX-300s 09 = Set Parameter command xx = Category xx = low 7 bits of parameter Index0 xx = hi 7 bits of parameter Index0 xx = low 7 bits of parameter Index1 xx = hi
Requesting Mixer Values Set Multiple Mixer Values with a Fade Time F0 = Start message 1F = LCS Audio manufacturers ID 7E = Matrix3 Product ID 10 = Mixer Subsystem 3F = Broadcast to all LX-300s 0F = Set Multiple Parameters with Fade time xx = Category xx = Number of points to set For each point: xx = low 7 bits of parameter Index0 xx = hi 7 bits of parameter Index0 xx = low 7 bits of parameter Index1 xx = hi 7 bits of parameter Index1 xx = low 7 bits of Value xx = hi 7 bits of Value xx = low 7 bits of Fade
SpecSpace Values Request Mixer Settings F0 = Start message 1F = LCS Audio manufacturers ID 7E = Matrix3 Product ID 25 = External Control Subsystem xx = Frame ID being queried - use the checksum version 0x00 to 0x3E (All LX-300s will respond if 3F (Broadcast) is used) 42 = Command: Get Mixer Parameter Value Array 0A = length of following data (0B if SpecSpace byte is present) 00 = Place holder for Tag Number (tag number not used) xx = Category XX XX = Start index 0 (lsb first) XX XX = Start index 1 (lsb fir
SpecSpace Values xx = low 7 bits of parameter Index1 xx = hi 7 bits of parameter Index1 xx = low 7 bits of Value xx = hi 7 bits of Value xx = optional control point SpecSpace byte xx = Checksum F7 = End message Some categories include many parameters, either indexed by INDEX0, INDEX1 or both indexes.
Mixer Categories, Indexes, and Values ... XX = Checksum F7 Mixer Categories, Indexes, and Values Category is a single 7-bit value. Categories specify groups of parameters of the same type, for example all Input Volumes are in one category, and all Output EQ Q Values are in another category. Index0, Index1, and Value are all 14-bit integers. The meaning of Value depends on the category. Different categories can require values in the following forms: Boolean.
AFL and PFL Examples 00 = hi 7 bits of parameter Index1 78 = low 7 bits of Value 05 = hi 7 bits of Value 09 = Checksum (use 00 as placeholder if Broadcast with no checksum is used) F7 = End message So all you need to type into the Raw Data command is: 10 3f 09 05 00 00 00 00 78 05 When you check the "Add Delimiters and Checksum" box, the hex at the bottom of the window will update to show: f0 1f 7e 10 3f 09 05 00 00 00 00 78 05 09 f7 If you click "Do Selected", then you will see your System Trim jump to Uni
Output Relay Examples f0 1f 7e 35 00 04 01 02 28 f7 Close Relay.
Hardware Status Queries Ping Messages LX-300 Status and Control Log Messages 27 28 29 How to get information about the Matrix3's status. Ping Messages The Ping command is used to determine the basic status of a processor within a Matrix3 system. The status reply includes two 7-bit values, "UserValue1" and "UserValue2", which both default to 0. These are optional values and do not need to be set unless you want your own user values.
LX-300 Status and Control F0 = Start message 1F = LCS Audio manufacturers ID 7E = Matrix3 Product ID 7F = Manager Subsystem 3F = Broadcast to all LX-300s (only receiving LX-300 will respond, use 7f broadcast, no checksum) 08 = Ping Command 02 = length of following data 00 = UserValue1 00 = UserValue2 XX = Checksum (example: 1B for UserValue1&2 set to 00) F7 = End message LX-300 Status and Control Request Memory Status F0 = Start message 1F = LCS Audio manufacturers ID 7E = Matrix3 Product ID 00 = System Co
Log Messages XX = Frame ID, (00=Frame ID 01, 3F= Broadcast to all LX-300s) 00 = Subsystem ID 01 = Command ID XX = Number of bytes in text XX XX XX... = Data bytes XX = Checksum F7 = End message Log Messages Each LX-DSP and LX-EXP maintains an internal debug log. The system can be set to store a number of types of messages including plugin and alerts. Each module uses 256K of memory for the log. The command uses two parameters, the beginning and ending index.
Communication Options ACK Sysex Sysex over TCP Sysex through a Web Server 31 33 34 Different ways of communicating with the Matrix3s.
ACK Sysex F0 1F 7E 25 = sxExternalControlSubsystem 7F = Broadcast to all LX-300s 06 = EXTSUB_CMD_ACK_WRAPPER 00 = Frame ID 01 (the only processor we want an ack from) 01 02 03 04 05 = tag-value (can be anything I like, I chose 1,2,3,4,5) 1f 7e 00 3f 04 00 = embedded "check firmware version" payload sysex xx = Checksum F7 When you send the above sysex, you should see all the DSPs print their firmware version to the log, and then immediately afterwards you should receive back the following sysex from DSP 0:
Sysex over TCP f0 1f 7e 30 = sxTCPSubsystem 7f = broadcast 0F = LXTCP_CONTROL_COMMAND_ADD_CUSTOM_PARSE_PREFIX [...
Sysex through a Web Server By default, however, you won't get any reply or other sysexes back over the TCP connection. This is because different software connects to the server for different purposes, and so needs to get different data back. Rather than spam every client with every sysex, the server sends nothing back by default, unless/until you send it a sysex telling it what sort of messages you want back. Each client may change his filter type at any time by sending this sysex.
Reference Tables Fader Gain Values 35 Fader Gain Values The LX-300 maintains a lookup table of 1001 points to describe every level in dB from off to +10 dB. These values (ranging from 0 to 1000) are packed "little endian" with the least significant 7 bits first, and the most significant 3 bits in the second byte. The next table describes the values to set to achieve different gains. Table 3. Fader Gain Values B xx (Hex) LSB yy (Hex) MSB mm 10 68 07 100 9 50 07 97.6 8 38 07 95.
Fader Gain Values B xx (Hex) LSB yy (Hex) MSB mm 18 28 03 42.4 19 1C 03 41.2 20 10 03 40.0 21 04 03 38.8 22 78 02 37.6 23 6C 02 36.4 24 60 02 35.2 25 54 02 34.0 26 48 02 32.8 27 3C 02 31.6 28 30 02 30.4 29 24 02 29.2 30 18 02 28.
Index A AFL, 24 automation cue lists, 14-16 cues, 12-14 SpaceMap, 17-18 stop, 16 C checksum, 8 client type, 32-34 E examples ACK response, 14, 31 check firmware, 31 HTML sysex links, 34 recalling cues, 12-14 using C, 8 F fader gain values, 35 Frame IDs, 7 H hardware ports, 9 L log messages, 29 LX-300 broadcasts, 8 status, 28-29 M mixer requesting values, 20-21 setting values, 19-20 Mixer categories, 23-24 P PFL, 24 ping, 27 processor (see LX-300) R Relays, 24 RS-232, 9 ACK response, 33 RS-422, 9 ACK
S subsystem numbers, 7 sysex requesting ACK response, 31 standard message format, 7 through a web server, 34 through TCP, 33 38