Composer-Control-Protocol-v7.0-080918
Composer-Control-Protocol-v7.0-080918
0
Control Protocol
www.symetrix.co | T +1.425.778.7728
Table of Contents
www.symetrix.co | T +1.425.778.7728
2 of 25
Introduction and General Notes
2 RX 2 TX
www.symetrix.co | T +1.425.778.7728
3 of 25
General Notes
• Commands should be sent to UDP or TCP port number 48631 Note: The RS-232 serial port and the Ethernet port are
of the Edge or Radius unit’s IP address. The IP address may be essentially independent. They maintain separate settings
found using the Connection Wizard or on some units’ front panel for quiet and echo modes. Commands sent to one port are
displays. not echoed out the other, and responses are sent only to
• Commands should be formatted exactly as defined in this the port from which the command was received. Hence, the
document and include a carriage return that terminates the two ports will not necessarily send out the same data. One
command. exception to this is push data and strings, which are sent
out both RS-232 and Ethernet ports in parallel.
• Command strings may or may not include a zero termination
character. RS-485 Control
• Commands should not be broken up across multiple packets. RS-485 control is generally done using one or more of the
• If high reliability communications are required, responses to Symetrix ARC (Adaptive Remote Controller) units. Further
commands should be analyzed for success. discussion of RS-485 and the ARCs can be found on the
Symetrix web site.
Responses to commands will exhibit the following behavior:
• Responses to each command issued are returned in a single Site Identifier
packet unless the response is larger than a single packet By default, any control data sent to a Symetrix unit (via
can hold. Responses will not have any single carriage return- ARC, RS-232, UDP/IP, or TCP/IP) will be re-broadcast over
terminated line broken up across packets unless there is no Ethernet by the unit that receives the command to all units
carriage return in the data of the response. that are connected via Ethernet. This ensures that multiple
• Responses are returned only to the IP address and source Symetrix units with the same Site Identifier that are using
port number that sent the packet. Other connections will see the same control numbers will also receive and interpret the
responses if the particular control numbers are ‘push’ enabled. command and respond to the command appropriately (i.e.,
adjust faders, button states, etc).
• Responses follow the configuration of the port, just as if it were
an RS-232 port. For example, echo mode and quiet mode are When the system consists of multiple independent site files
kept independently for the RS-232 port, the UDP port and the on the same network and you do not want control data
TCP port. for common control numbers to be shared between these
different site files, each site file must have a unique site
• Responses do not include a zero-termination character. identifier set in Composer. Unique Site Identifiers in the site
• All transmissions originating from units will either be responses to file inform other systems with different site identifiers on the
commands or pushed data. same network to ignore the re-broadcasted commands.
Each command sent to a Symetrix unit contains information Using unique Site Identifiers for different site files on the
in the Ethernet packet header as to who sent the command, same network does not require any change in how the
and hence, where a response will be sent. This source systems are controlled from a third-party control system.
information is saved when a packet is received by a Symetrix The third-party control system continues to send commands
unit. For UDP, all responses go to the last received IP to the Symetrix device to be controlled and that device
address and port and this IP address and port number are
re-broadcasts that command along with the additional
saved in non-volatile memory across power cycles. For TCP,
the control system must re-initiate the TCP connection after information of the site identifier onto the network. Symetrix
a power cycle. units with Site Identifiers that are different from the site
identifier in the re-broadcasted command will simply ignore
Until the first command is received, responses will not know
the re-broadcasted command.
where they are supposed to be sent. This normally is not an
issue as communication from the Symetrix unit is generally
a response to a command. However, if the Symetrix unit is
set up to push control data, it will also be pushed out the
TCP and UDP ports. If no valid packets have ever been
received by a Symetrix unit and no TCP/IP connections are
active, pushed data will not be sent out the Ethernet port. If
a Symetrix unit and a TCP connection is active, then pushed
data will be transmitted over TCP. If valid packets have been
received over UDP by a Symetrix unit, then pushed data will
be transmitted over UDP.
Pushing of data can be controlled independently for RS-232
and Ethernet ports.
www.symetrix.co | T +1.425.778.7728
4 of 25
Parameter Notes
To set the identifier, within Composer, navigate to Tools > Note that some faders have a different range than –72 to
Site Preferences and change the site identifier as shown in +12dB. In this case, the formula will depend upon the actual
the following figure. fader range. The more general formula is shown below:
Volume dB = MINIMUM VALUE + (MAXIMUM VALUE – MINIMUM
VALUE)*(CONTROLLER POSITION/65535)
Where MINIMUM VALUE is the fader’s lower limit in dB and
MAXIMUM VALUE is the fader’s upper limit in dB.
www.symetrix.co | T +1.425.778.7728
5 of 25
Parameter Notes
Calculating the Volume in dB from the Volume Percentage with 65535 representing 100% and 0 representing 0%.
would be done as follows: The formula below can be used to calculate a percentage
Volume in dB = (Volume Percent * (User Max – User Min)) + User Min reading from a controller value:
Buttons LEDs
Buttons such as a mute or bypass can be controlled LEDs in various modules can be read via the control
similarly with controller positions by sending the minimum protocol. The read back value will be either 65535 if the LED
value (0) to turn the switch off (button not pushed) and is on or 0 if the LED is off.
sending the maximum value (65535) to turn the switch on Note: LEDs are a “read-only” parameter. Attempting to
(button pushed). change the LED value will have no effect.
Input and Output Selectors
Diagnostic Controls
A value of zero (0) will select the first input or output and a
value of (65535) will select the last input or output. Other Connected LED
values are selected by sending evenly spaced (linear) values The read back values are:
as shown by the formula below:
0 = Disconnected
Controller Value = (INPUT NUMBER - 1) 65535 = Connected
*65535/(NUMBER OF INPUTS - 1)
Network Diagnostics Panel
Note: for an output selector, replace “INPUT” with DHCP Enabled LED - Only DHCP Enable can be read unless
“OUTPUT” above. using SymVue. The read back values are:
0 = DHCP Disabled
Meters
65535 = DHCP Enabled
Meters can be read via RS-232 or Ethernet. The read back
value will be linear in dB with 65535 representing +24 dBu (0 Power Supply Diagnostics Panel
dBFS) and 0 representing -48 dBu (-72 dBFS) (or less). The All voltages are in .001V increments offset by 32768. The
formula below can be used to calculate a dB reading from a read back values of 0-65535 translate to -32.768V-32.767V.
controller value: Status LED - The read back values are:
Level dBu = 72*(CONTROLLER VALUE/65535) - 48 0 = OK
65535 = Failed
If CONTROLLER VALUE = 0, Level dBu <= -48 dBU
Thermal Diagnostics Panel
Input and output meters in some other modules such as
Compressors and AGCs can also be read. In this case, the Peak temperature date and time can only be read in
read back value will be linear in dB with 65535 representing SymVue. All temperatures are in .01 degree C increments
the maximum value shown on the meter and 0 representing offset by 32768. The read back values of 0-65535 translate
the minimum value shown on the meter (or less). The to -327.68V-327.67V.The Fan speed is 0-65535 Hz.
formula below can be used to calculate a dB reading from a Status LED – Send -65535 to clear, The read back values are:
controller value: 0 = OK
Level dB = (MAXIMUM VALUE - MINIMUM VALUE) 65535 = Failed
*(CONTROLLER VALUE/65535) + MINIMUM VALUE
Control Diagnostics Panel
If CONTROLLER VALUE = 0, Level dB <= MINIMUM VALUE
All read back values:
Where MINIMUM VALUE is the meter’s lower limit in dB and 0 = Inactive/Off
MAXIMUM VALUE is the meter’s upper limit in dB. 65535 = Active/On
Control meters in dedicated control meter modules can
also be read. In this case, the read back value will be linear
www.symetrix.co | T +1.425.778.7728
6 of 25
Getting Started and Control Commands
www.symetrix.co | T +1.425.778.7728
7 of 25
Control Commands
NAK<CR>
A typical reason for failure is that the specified controller
number does not exist.
www.symetrix.co | T +1.425.778.7728
8 of 25
Control Commands
NAK<CR> If the command is interpreted but fails for any reason the unit
will respond with the string:
A typical reason for failure is that the specified controller
number does not exist. NAK<CR>
(GPR) Get Preset A typical reason for failure is that the requested block size
is larger than 256. For more information and tips on reading
This command will return the last preset that was loaded. back controller numbers, see the GS command.
The syntax of the command is:
Example command sent:
GPR<CR>
GSB 9 3<CR>
If the command is accepted, the unit will respond with the
string: Example Response:
NAK<CR>
www.symetrix.co | T +1.425.778.7728
9 of 25
Control Commands
(GSB2) Get Controller Block with Controller (GSB3) Get Controller Block with Controller
Number Number
This command will return the controller number with This command will echo the command and then return the
controller position (value) associated with it for a specific controller number with controller position (value) associated
range of consecutive controller numbers. The command is with it for a specific range of consecutive controller numbers.
very similar to GSB described above, but the return string The command is very similar to GSB2 described above, but
may be easier to process in some systems. The command the return string includes the original command followed by
must specify the starting controller number and the number
the GSB2-style response. The syntax of the command is:
of consecutive controllers to return. The syntax of the
command is:
GSB3 <CONTROLLER NUMBER> <BLOCK SIZE><CR>
GSB2 <CONTROLLER NUMBER> <BLOCK SIZE><CR>
Where <CONTROLLER NUMBER> is the decimal controller
Where <CONTROLLER NUMBER> is the decimal controller number (1-10000) assigned in Composer and <BLOCK
number (1-10000) assigned in Composer and <BLOCK SIZE> is the number of consecutive controllers. Note that
SIZE> is the number of consecutive controllers. Note that
<BLOCK SIZE> can be at most 256. <BLOCK SIZE> can be at most 256.
If the command is accepted, the unit will respond with the If the command is accepted, the unit will respond with the
string: string:
#<CONTROLLER NUMBER1>= GSB3 <CONTROLLER NUMBER> <BLOCK SIZE> <CR>
<CONTROLLER POSITION1><CR>
#<CONTROLLER NUMBER1>=
#<CONTROLLER NUMBER2>= <CONTROLLER POSITION1><CR>
<CONTROLLER POSITION2><CR>
#<CONTROLLER NUMBER2>=
#<CONTROLLER NUMBER3>=
<CONTROLLER POSITION3><CR> <CONTROLLER POSITION2><CR>
… …
#<CONTROLLER NUMBERn>=
<CONTROLLER POSITIONn><CR> #<CONTROLLER NUMBERn>=
<CONTROLLER POSITIONn><CR>
Where <CONTROLLER NUMBERn> is the decimal
Where <CONTROLLER NUMBERn> is the decimal
controller number (1-10000) assigned in Composer and
controller number (1-10000) assigned in Composer and
<CONTROLLER POSITIONn> is a 16-bit number in <CONTROLLER POSITIONn> is a 16-bit number in
decimal (0-65535), or -1 if a controller does not exist. The decimal (0-65535), or -1 if a controller does not exist.
values for the controller number and position will always be If the command is interpreted but fails for any reason the unit
five digits, with leading zeros added as necessary (e.g. 7 will respond with the string:
would be returned as 00007 and -1 would be returned as
-0001). NAK<CR>
If the command is interpreted but fails for any reason the unit A typical reason for failure is that the requested block size is
will respond with the string: larger than 256.
NAK<CR> Example command sent:
A typical reason for failure is that the requested block size GSB3 140 3<CR>
is larger than 256. For more information and tips on reading
back controller numbers, see the GS command. GSB3 00140 00003<CR>
Example command sent: 00140=00000<CR>
#00009=32321<CR>
#00010=00256<CR>
#00011=00003<CR>
www.symetrix.co | T +1.425.778.7728
10 of 25
Control Commands
(LP) Load Preset <unit> is the unit enumerator after the dash shown in
Composer above each unit, e.g. “Edge-1” means <unit> = 1.
This command will load the specified preset (1-1000). The
syntax of the command is: <enum> is zero based, 0-19 for speed dials 1-20.
<card> is 0-3 for plug-in slots A-D.
LP <PRESET NUMBER><CR>
<channel> is zero based and 0 where not applicable.
Where <PRESET NUMBER> = 1-1000
If the command is accepted, the unit will respond with the
string: The following example sets the name of speed dial #3 on
card A of unit 1 to ‘Acme Inc.’
ACK<CR> SSYSS 1.1001.2.0.0=Acme Inc.
If the command is interpreted but fails for any reason the unit
will respond with the string:
This example sets the number of speed dial #20 on card D
NAK<CR> of unit 1 to ‘555-1234’.
A typical reason for failure is that the specified preset has not SSYSS 1.1000.19.3.0=555-1234
been defined. Below is an example of using the SSYSS command to dial
telephony digits directly.
(FU) Flash Unit LEDs
This command momentarily flashes the front panel LEDs of
the unit. This command can be used as a quick test to verify
communications. The syntax of the command is:
FU [<cycles>] <CR>
<cycles> indicates the number of times to cycle the LEDs If the command is accepted, the unit will respond with the string:
on and off. If <cycles> is set to zero, it halts the flashing
immediately. If not specified, it defaults to 8 cycles. ACK<CR>
If the command is accepted, the LEDs will flash and the unit If the command is interpreted but fails for any reason the unit
will respond with the string: will respond with the string:
NAK<CR>
ACK<CR>
As an example, consider a Radius AEC that is labeled as
If the command is interpreted but fails for any reason the unit Radius AEC-1 as shown in the following figure. The “-1” at
will respond with the string: the end of the unit name indicates this is unit ID 1.
NAK<CR>
SSYSS <unit>.<resource>.<enum>.<card>.<channel> To set the speed dial name and number of location 12, to
=[<value>]<CR> “Conference Rm 1” and “555-1234”, respectively, use the
Sets the string resource defined by the 5 parameters above following commands:
to <value>. Supported values for <resource> are shown in SSYSS 1.1001.11.3.0=Conference Rm 1<CR>
the following table: SSYSS 1.1000.11.3.0=555-1234<CR>
Resource Number Resource Name
1000 Speed dial number
1001 Speed dial name
1004 Number to dial (VoIP only)
www.symetrix.co | T +1.425.778.7728
11 of 25
Push Commands
And to dial Speed Dial 12, use the following command Returns the caller ID on unit 2 for line 2 on card D.
assuming the speed dial 12 button has control number 112 If the command is accepted, the unit will respond with string:
assigned to it:
CS 112 65535<CR> ACK<CR>
To enter a number to dial directly by entering the digits If the command is interpreted but fails for any reason the unit
14257787728, send the command will respond with the string:
SSYSS 1.1004.0.3.0=14257787728<CR> NAK<CR>
And to dial the digits, send the following command Other examples from an existing system are shown below:
assuming the connect/disconnect has control number 140
assigned to it: GSYSS 1.1003.0.3.0<CR>
CS 140 65535<CR> Returns: 710 ‘Room 710’ 4/15 7:15
Dialing VoIP Strings GSYSS 1.1005.0.4.0<CR>
When using the 1004 resource to dial strings with the VoIP Returns: In Call: 710
interface, the maximum length phone number that may be
directly dialed is 63 characters. Valid characters include GSYSS 1.1006.0.3.0<CR>
0-9, #, *, ., and letters (for SIP URI dialing). The digit pause
Returns: Time 0:00:35
character ‘,’ to generate 2 seconds of pause in a dialing
string is not supported for the VoIP interface. Direct dial is Valid values of Resource Number 1005 are shown in the
not supported for the ATI card. following table. The parameter <dialed number> represents
(GSYSS) Get System String the digits that were dialed, if any, to initiate the call.
This command gets a system string such as a speed dial Telephony Status
Description
Interface Message
name or number. The syntax of the command is:
Busy: The call appearance is busy
GSYSS <unit>.<resource>.<enum>.<card>.<channel> <CR>
Dialing: The call appearance is being dialed.
Gets the string resource defined by the 5 parameters above.
Supported values for <resource> are shown in the following Hold: The call appearance is in hold mode
table:
Idle The call appearance is in idle state.
Resource Number Resource Name VoIP
Interface The remote caller has answered and a call is
1000 Speed dial number In Call:
connected.
1001 Speed dial name Remote
The remote caller has placed the call on hold.
Hold:
1002 Dialed number
Ringing The call appearance is ringing.
1003 Caller ID
1004 Number to dial (VoIP only) Unavailable: The call appearance cannot connect.
1005 Call status (VoIP only) Reset The telephone line has been reset.
1006 Elapsed time in a call (VoIP only)
Ready The line onhook and ready for a call.
<unit> is the unit enumerator after the dash shown in Outgoing Call The line is dialing a call
Composer above each unit, e.g. “Edge-1” means <unit> =
1. Ringing The line is actively ringing.
<enum> is zero based, 0-19 for speed dials. Analog
Telephone Ring Silence The line is quiet between active rings.
<card> is 0-3 for A-D. Interface
An incoming call has dialed the telephony
Incoming Call
<channel> is zero based and 0 where not applicable. interface.
GSYSS 2.1003.0.3.1<CR>
www.symetrix.co | T +1.425.778.7728
12 of 25
Push Commands
www.symetrix.co | T +1.425.778.7728
13 of 25
Push Commands
Up to 64 strings, separated with a <CR> as shown, may be I want to refresh everything to make sure
sent out together.
my control system is synchronized to the
Example: hardware. How can I receive all data even if
#00007=12321<CR> it hasn’t changed?
#00324=00128<CR> Use the Push Refresh (PUR) (GC) command. Alternatively,
you could use the Get Controller commands to manually ask
#10000=65535<CR> for the controls you are concerned with.
Should I use the push feature or poll for Sometimes my control system turns off
parameter changes? push for an extended period of time. When
I turn it on, will I be notified of all changes
The decision is up to you. Use whichever method makes
more sense for your application and control system. Manual that occurred while push was turned off?
polling is often simpler to implement initially because all data Yes, by default, all changes made while push was off will be
from the unit is a direct response to command you send immediately reported as soon as it is turned on. This applies
it, simplifying parsing. However, in situations where a large to both turning push off globally or for individual controllers
number of parameters that change infrequently need to be via the Push Disable command. Take care that your system
monitored, pushing may make more sense. You may also can handle the potentially large amount of data that can
prefer the convenience of not needing to set up a timer be generated. It may be helpful to “gradually” turn on the
to continually poll parameters for changes. Use whatever push feature, enabling a small range of controller numbers
method is appropriate for your situation. at once. You can also use the Push Clear command to
deal with this scenario. It allows you to effectively ignore all
How often is data pushed? previous unreported changes.
If there is data to be pushed, it is normally sent out every
100 milliseconds. This is called the push interval. While 100
ms is the default, the push interval can be changed via a Set What is the difference between the Global
Push Interval (PUI) command.
Push Enable/Disable (PU) command
Can I push meter data? and the Push Enable (PUE) and Push
Yes, meters can be enabled for push. Keep in mind that Disable (PUD) commands? Why are there
with normal audio signals connected to a meter, the meter
value will most likely be changing constantly, so you will 2 different ways to specify a range of
typically see the meter data being pushed at every 100 ms controllers?
interval. However, a Set Push Threshold command can be
used to prevent pushes until the data differs by a specified The Global Push Enable/Disable command can be used to
amount (by default, this amount is 1). Another option is to completely turn off push, or turn on push for all or a single
use an LED display, peak detector, and/or threshold detector contiguous range of controller numbers. In contrast, the
modules instead of directly pushing the meter date. Push Enable/Disable command allows much finer control.
Individual (non-contiguous) controllers can be turned on and
How can I control the amount of data off, hence multiple ranges are supported.
pushed? The reason both methods are provided is for backwards
There are several methods for controlling pushed data. First, compatibility. The less flexible “single range” global PU
since pushed data is enabled on a per-control basis, your first command was added first. Later, the more flexible PUE and
line of defense is to limit it to only certain controls. Second, PUD commands were added as an enhancement. The older
pushing can be globally turned on and off using this protocol. global method was left in so existing programs wouldn’t
Third, pushing can be enabled for just a range of controller need to be modified. We recommend that you use either
numbers. Fourth, the Set Push Threshold command can be one system or the other exclusively. Do not combine them.
used to prevent pushes until the data changes by a specified New designs should use the PUE and PUD commands and
amount. Fifth, the Set Push Interval command controls how never use the PU command with a range specified.
often the data is pushed, useful for meters and other data that
changes frequently. Finally, the Push Refresh and Push Clear
commands provide additional methods of control.
www.symetrix.co | T +1.425.778.7728
14 of 25
Commands Related to Push
What is the difference between the Push Make sure the individual controllers have been enabled
using the Push Enable command. Push is disabled for all
Enable (PUE) and Push Disable (PUD) controllers on power-up, and must be turned on via RS-232
commands and the and the “Enable Push” or Ethernet. Sending a PUE command is a quick way to
button in Composer? enable all controllers.
Make sure the parameter to be pushed is changing. Change
Both of these methods can be used to enable or disable an the parameter via the control application, a Controller Set
individual controller for push. The difference is that changing command, or other method. You can also use the Push
the setting in Composer requires you to push to the design to Refresh command to force the data to be sent. If you have
hardware again, whereas the Push Enable and Push Disable changed the push threshold, make sure the parameter is
commands take effect immediately and are intended to be changing by an amount larger than the threshold.
used for “on the fly” changes. In addition, Composer settings For Ethernet, the unit needs to know the proper IP address
are permanent across power cycling, whereas changes made to send the data. Make sure at least one command has
with the Push Enable and Push Disable commands are reset been sent from the control system to the unit. If the control
by a power cycle (all controllers default to enabled). Please system ever changes IP addresses, another command must
note that the “Enable Push” button acts as an override so it be sent to establish the new address.
must be enabled for a controller ever to push. You cannot
issue a Push Enable command for a parameter that doesn’t What are the limitations of this feature?
have the “Enable Push” setting active. If multiple parameters change at the same time, up to 64
controller numbers will be sent out during each push interval
How does push work at power-up? (default 100 ms) until all have been sent out. This maximum
When a unit is first powered up, push is globally turned rate may be further limited by your RS-232 baud rate. If a
large amount of data is being pushed, we recommend using
on and all controllers are individually enabled. All controller
the highest baud rate your system can support. A baud
numbers are assumed to have changed. This means that rate of 115200 is sufficient to prevent further limiting of the
after power-up, you will immediately receive all current values. throughput.
What about pushed system strings?
The pushing of system strings enabled/disabled in the Site
Preferences. When enabled, any changes made to speed Commands Related to Push:
dials, etc. will be pushed out the RS-232 port and the (PU) Global Push Enable/Disable
Ethernet port of the Symetrix unit. They also push on a Site
File push and unit power up. This command enables or disables the push feature. When
enabling, a range of controllers can be specified to allow
I’m not receiving unsolicited data. Any pushing only certain values. Disabling is always global and
prevents any unsolicited data from being pushed. The syntax
suggestions for troubleshooting? of the command is:
First of all, make sure that general communication is working
between your control system and the Symetrix RS-232 port PU <ON/OFF> [<LOW> [<HIGH>]]<CR>
or Ethernet port. Make sure you can send commands and Where <ON/OFF> is 0=OFF and 1=ON, <LOW> is the
receive ACK messages. Try the Flash Unit (FU) command. optional lowest controller number to push (only valid when
Make sure the parameters you want pushed have the enabling) and <HIGH> is the optional highest controller
“Enable Push” setting active in Composer. You can verify number to push (only valid when enabling). <LOW> and
this using the Controller Manager, and making sure there is <HIGH> are both decimal controller numbers (1-10000)
a ‘Yes’ in the Push column. Be sure you Go On-Line (Push assigned in Composer. If no controller numbers are
Design To Hardware) or F4 after making any changes in
specified, the entire range of 1-10000 will be enabled for
Composer.
push. If only one controller number is specified, it is assumed
For Ethernet, make sure the Ethernet port is connected to be the <LOW> value and the range from that number,
to the same network as the control system. Verify the up to 10000, will be pushed. If two controller numbers are
connection LED on the Ethernet jack and/or switch is lit. specified, the range formed by those values (including the
Verify you can “ping” the unit using its IP address.
values themselves) will be enabled for push. <LOW> must
Make sure the push feature has been globally enabled using be less than or equal to <HIGH>. When enabling, the range
the Global Push Enable/Disable command. Push is globally specified overrides any previous ranges, i.e. it replaces the
enabled on power-up, but may be turned off via RS-232 or range, rather than adding to it.
Ethernet. Power cycling the unit is a quick way to verify this.
www.symetrix.co | T +1.425.778.7728
15 of 25
Commands Related to Push
If the command is accepted, the unit will respond with the (PUD) Push Disable
string:
This command enables the push feature for an individual
ACK<CR> controller or range of controllers. The syntax of the
If the command is interpreted but fails for any reason the unit command is:
will respond with the string:
PUD [<LOW> [<HIGH>]]<CR>
NAK<CR> Where <LOW> is the optional lowest controller number
At power-on, push is always enabled. Remember that to stop pushing and <HIGH> is the optional highest
individual controller numbers must be enabled using the controller number to stop pushing. <LOW> and <HIGH>
Push Enable command as well. Data is pushed whenever a are both decimal controller numbers (1-10000) assigned
change in that controller occurs or if forced to refresh using in Composer. If no controller numbers are specified, the
the Push Refresh command. entire range of 1-10000 will be disabled for push. If only one
Note: Global Push Enable with a range specified, e.g. controller number is specified, only that controller number is
PU 1 100 200<CR> is not recommended. Instead, we disabled. If two controller numbers are specified, the range
recommend always globally enabling the entire range using formed by those values (including the values themselves) will
PU 1<CR> and using the Push Enable command for be disabled for push. <LOW> must be less than or equal to
individual control. <HIGH>. Multiple PUD commands can be used to disable
non-contiguous controller numbers since changes are
(PUE) Push Enable subtractive.
This command enables the push feature for an individual
If the command is accepted, the unit will respond with the
controller or range of controllers. The syntax of the
command is: string:
www.symetrix.co | T +1.425.778.7728
16 of 25
Commands Related to Push
If the command is accepted, the unit will respond with a list changed, so it acts as if a full refresh was performed.
of enabled controller numbers separated by <CR>. If no Remember that individual controller numbers must have
controllers are enabled, it returns the string: the Enable Push setting active in Composer. In addition,
push must be enabled for the range of controllers you are
ACK<CR> refreshing (see Push Enable/Disable). Controller numbers
If the command is interpreted but fails for any reason the unit that don’t meet this criterion will not be affected by the Push
will respond with the string: Refresh command. In other words, if a controller is not
enabled for push, refreshing it won’t cause the value to be
NAK<CR> pushed even if that controller is later enabled. The controller
Special case: Entering GPU 0<CR> will return a list settings must be enabled for push at the time the Push Refresh
related to push. It begins with Global=<0/1> to show if push command is issued.
is globally enabled (1) or disabled (0).
(PUC) Push Clear
This is followed by five 5-digit values showing the settings of
This command causes previous changes in data to be
1) the global lower limit, ignored and not pushed. It may be desirable to issue
2) the global upper limit, this command when first enabling push to prevent being
3) the threshold for parameters, swamped by the flood of incoming data. A range of
4) the threshold for meters, and controllers can be specified to clear only certain values. The
syntax of the command is:
5) the push interval in milliseconds.
The default printout would look like this: PUC [<LOW> [<HIGH>]]<CR>
ACK<CR>
If the command is interpreted but fails for any reason the unit
will respond with the string:
NAK<CR>
At power-on, all controller values are assumed to have
www.symetrix.co | T +1.425.778.7728
17 of 25
Setup Commands
www.symetrix.co | T +1.425.778.7728
18 of 25
Setup Commands
Setup Commands When quiet mode is set to OFF, lengthy strings intended to
be read by humans are sent in response to commands. This
The defaults for the Set Baud and Set Echo Mode mode is useful when using a terminal program for testing or
commands are configured in Composer via the Unit debugging.
Properties dialog. Settings made via these Control Protocol
commands will be overridden by the values in the last The syntax of the command is:
pushed Site File on the next hardware reboot or push. To
SQ <ON/OFF><CR>
establish the permanent state, right-click on each unit and
select Unit Properties, then click Configure Remote Control Where <ON/OFF> is 0 = OFF, 1 = ON.
Port(s). Settings may be set independently for the Ethernet If the “SQ 0” command is accepted, the unit will respond
and RS-232 ports. with the string:
Note: If you ever find yourself in a situation where you
Setting Quiet Mode to false.<CR>
are not sure of the RS-232 port settings, you can use
Composer to return the unit to default values. Simply open If the command is interpreted but fails for any reason the unit
the Hardware->Upgrade Firmware/Hardware Settings dialog will respond with the string:
and click on the Erase Memory button. You can then select
NAK<CR>
to erase the Accessory Port Settings. Doing this will set
the baud rate, echo mode and quiet mode settings to the The quiet mode state is kept separately for the Ethernet port
factory default values. and the RS-232 port. A Set Quiet Mode command received
on the Ethernet port does not affect the RS-232 port and
Alternatively, the rear panel reset button can be used to vice versa. The quiet mode state is saved in non-volatile
return the settings to factory defaults. However, that should memory, so it is retained across power cycles.
be only used as a last resort since it also resets many other Note: New units default to quiet mode ON.
settings.
(EH) Set Echo Mode
(SB) Set Baud The Set Echo Mode command controls the text output of
The Set Baud command controls the RS-232 port’s baud the control port during commands. When echo mode is
rate. turned on, all characters that are received on the RS-232 or
Ethernet port are sent or “echoed” back. This mode is useful
The syntax of the command is: when using a terminal program for testing or debugging.
SB <BAUD><CR> When echo mode is turned off, the characters received are
not echoed back. All command descriptions above assume
Where <BAUD> is 1200, 2400, 4800, 9600, 19200, 38400, that echo mode is turned off. Echo mode OFF should
57600, or 115200. generally be used for normal operation.
If the command is accepted, the unit will respond with the The syntax of the command is:
string:
EH <ON/OFF><CR>
ACK<CR> Where <ON/OFF> is 0 = OFF, 1 = ON.
If the command is interpreted but fails for any reason the unit If the command is accepted, the unit will respond with the
will respond with the string: string:
NAK<CR> ACK<CR>
The baud rate is saved in non-volatile memory so it is If the command is interpreted but fails for any reason the unit
retained across power cycles. This command can be sent will respond with the string:
to either the Ethernet or RS-232 port, but only affects the
NAK<CR>
RS-232 port.
The echo mode state is kept separately for the Ethernet port
Note: New units default to a baud rate of 57600. and the RS-232 port. A Set Echo Mode command received
on the Ethernet port does not affect the RS-232 port and
(SQ) Set Quiet Mode vice versa. The echo mode state is saved in non-volatile
The Set Quiet Mode command controls the text output memory so it is retained across power cycles.
of the control port during responses. When quiet mode is
Note: New units default with echo mode OFF.
turned on, it restricts the output to just ACK, NAK or simple
values. All command descriptions above assume that quiet
mode is turned ON. Quiet mode ON should generally be
used for normal operation.
www.symetrix.co | T +1.425.778.7728
19 of 25
Special Command Prefixes
R! (Reboot device)
The R! command will reboot the unit.
www.symetrix.co | T +1.425.778.7728
20 of 25
Special Command Prefixes
www.symetrix.co | T +1.425.778.7728
21 of 25
Action 9. OMute Output Mute
The second argument is the action to take. It can be Set, 10. OGain Output Gain
Get, Modify, Toggle, or Reset. This chooses whether to 11. OPre Output Pre/Post
read the current value or change the value in a variety of
ways. As you might guess, “Get” reads and “Set” writes. Enumerator
The “Modify” option allows changing the value relative to The <Enumerator> specifies which crosspoint, input, output,
the current setting using a positive or negative offset. The etc. to control. Matrix crosspoints, will be identified with an
“Toggle” value toggles a boolean (button) parameter from on “IxOy” syntax, e.g. “I3O4” refers to input #3 output #4. For
to off or vice versa. The “Reset” option resets a parameter parameters that refer only to an input or output and not a
to its default, i.e. what it would be in a fresh module placed crosspoint, specify just the “I” or “O” part, e.g. “I3” or “O1”.
in Composer. All values are 1-based so they match what the user sees in
Note that not all actions are appropriate for all feature Composer.
types. For example, “Toggle” is not applicable to continuous The <Enumerator> may also be specified as a contiguous
parameters such as gains. In these cases, the command range or arbitrary set of values. If this format is used, the
does nothing but does not return an error. enumerator should be enclosed in {curly brackets}. For a
“Modify” may be used with boolean parameters, e.g. mutes range, a colon is used to separate the beginning and ends
and grid connect buttons. In this case, any positive modifier of the range. For example “{I1O1:I3O4}” specifies a 3x4
will turn the parameter on, any negative modifier will turn the rectangle of values with upper left of Input #1 Output #1 and
parameter off, and a 0 modifier will do nothing. lower right at Input #3 Output #4.
Format Sets of values are specified using comma-delimited lists.
For example “{I1O1,I3O3,I16O12}” specifies 3 different
The optional <Format> field allows the user to specify the crosspoints at input 1/output 1, input 3/output 3, and input
format of the <Value>. If no option is specified, it uses the 16/output 12.
native format for that particular control, i.e. dB for gains,
0/1 for Booleans, milliseconds for delay, and percentage for Sets, ranges, and individual values may be combined, so
pans. Other options are ‘P’ or ‘%’ for percentage 0-100% complex groups may be set in a single command, e.g.
and ‘L’ for the legacy 0-65535 range. The format also “{I1O1:I3O4, I8O8:I9O9, I10O10}”. It is legal to include the
applies to the returned data. {curly brackets} even if only a single value is specified. So
the brackets may always be included if desired. Spaces
Unit between individual comma-separated values in a set may be
The <Unit> field allows the user to specify the unit in the used for clarity.
current site. If set to 0, the unit currently being addressed Value
is assumed. Otherwise, it is the enumerator shown in
Composer. The <Value> may be in 1 of 3 different formats as mentioned
in the discussion of the <Format> field. For percent and
Module native mode, values may be floating-point of any precision.
The <Module> field allows the user to specify the module Legacy 16-bit mode uses integers between 0-65535. In
number shown in Composer. For the Super Matrix, the native mode, all gains are expressed in dB. Boolean
module number is always 1. parameters should be either 0 or 1. Delay values are in
fractional milliseconds. In percentage mode, a percent sign
Feature may or may not be included. In dB mode, anything -72.0
1. The <Feature> may be any of the following for the dB of under will be interpreted as fully off or muted. The
matrix mixer: word “Off” may also be used. Muted values will always read
back as -72.0 dB. Values larger than the accepted range
2. CPGain Crosspoint Gain
will be clamped to their minimum or maximum values.
3. CPConnect Crosspoint Connect status
If multiple enumerators are given, all specified parameters
4. CPDelay Crosspoint Delay will be set to the same <Value>. Only one <Value> may be
5. IMute Input Mute provided in each command.
6. IGain Input Gain
7. ISolo Input Solo
8. IPan Input Pan
www.symetrix.co | T +1.425.778.7728
22 of 25
An optional equals sign may be placed in front of the value, For pans, a percentage value with 2 decimal places will be
e.g. “CMV Set 0.1.CPGain.I3O6=4.1”. Doing so makes the returned.
commands and responses identical. In percentage mode, a value between 0 and 100 with 3
Basic Examples decimal places will be returned, e.g. “13.347%.” A percent
sign will be included.
CMV Set 0.1.CPGain.I3O6 4.1 – Set the crosspoint gain for
input #3 going to output #6 to 4.1 dB. In legacy 16-bit mode, a value between 0 and 65535 will be
returned with no decimal places and no units.
CMV Set 0.1.CPConnect.I13O76 1 – Turns on the
crosspoint for input #13 going to output #76. For percentage and 16-bit mode, the scaling of all
parameters is linear within. For gains, it is linear in dB, i.e.
CMV Toggle 0.1.OMute.O2 1 – Toggles the output mute for 50% would be -30 dB for a gain that ranges from -72 dB to
output #2. +12 dB. For delays, 100% or 65535 is the maximum delay
CMV SetP 0.1.IGain.I12 100 – Sets the input gain to time supported by the current configuration.
maximum (100%) for input #12. In general, percentage and legacy 16-bit mode are
CMV Modify 0.1.CPDelay.I1O1 -3.7 – Decrements the discouraged because they require the control system to
crosspoint delay for input #1 going to output #1 by 3.7 know the range and scaling of the parameters.
milliseconds. The exact format of the return is dependent on if quiet mode
CMV Get 0.1.CPConnect.I13O76 – Returns 0 or 1 based on is engaged or not. In quiet mode, the value will simply be
the crosspoint status for input #13 going to output #76. returned. In verbose mode, the control being set is included
in the same format as a parameter is specified followed by
CMV GetL 0.1.CPVol.I3O4 – Returns a value between
an equals sign, then the actual value:
0-65535 for the crosspoint gain for input #3 going to output
#4.
CMV Get% 0.1.OPre.O4 – Returns 0 or 100% based on the <Unit>.<Module>.<Feature>.<Enumerator>=<Value>
output pre/post state of output #4.
Return Value
Get Operations
For commands that get a value, the value will be returned in
the format the user specifies in <Format>. No units will be
included, e.g. a gain will be returned as “-4.50” not “-4.50
dB”. Assuming native mode, for gains, 2 decimal places of
precision will be given. For milliseconds, 3 decimal places
will be given. For Booleans, a 0 or 1 will be returned.
www.symetrix.co | T +1.425.778.7728
23 of 25
In verbose, commands that change a value will respond with
the changed parameter followed an equal sign and then
the new value in the specified format. If multiple values are
changed by a control, i.e. a range of gains, the new value
for each will be returned on a separate line. Note this may
generate very large volumes of traffic! It is advisable to use
the quiet mode option when changing more than a handful
of values to avoid this.
For values, in native mode, specifying a value outside of the
defined range of the parameter is not considered an error.
The value will be clipped to the minimum or maximum value
supported. This is done because control systems may not
understand the exact ranges of parameters. In percentage
or 16-bit mode, values outside of 0-100 or 0-65535 are
considered errors.
Reasons may be any one of the following: Action, Format,
Unit, Module, Feature, Enumerator, Value, Configuration,
System, Other. The first 7 are self-explanatory, referring to
the format of the CMV command. “Configuration” means
the specified feature is not supported in the current site file
configuration, i.e. that feature was disabled in Composer.
www.symetrix.co | T +1.425.778.7728
24 of 25
Control Protocol: Composer
www.symetrix.co | T +1.425.778.7728