Summary

SymNet Composer v2.0 control protocol for Symetrix Prism Series DSPs (and other Composer-based units: Edge, Radius, Radius AEC, xControl). Provides ASCII text command/response control over RS-232, TCP/IP, and UDP/IP. Commands reference user-assigned controller numbers defined in SymNet Composer software.

Transport

protocols:
  - serial
  - tcp
  - udp
addressing:
  port: 48631
serial:
  baud_rate: 57600
  data_bits: 8
  parity: none
  stop_bits: 1
  flow_control: none
auth:
  type: none  # inferred: no auth procedure in source

Traits

- powerable  # inferred: unit supports reboot via R! command; not a literal power on/off command in source
- routable   # inferred: input/output selector controllers documented
- queryable  # inferred: GS, GSB, GPR, GSYSS, RI, V query commands present
- levelable  # inferred: fader/volume controller commands documented

Actions

# CRITICAL: each named opcode in the source = one action. Parameter ranges
# (e.g. CS controller position 0-65535) do not multiply into separate actions.

- id: controller_set
  label: Controller Set (CS)
  kind: action
  command: "CS {controller_number} {controller_position}"
  params:
    - name: controller_number
      type: integer
      description: Decimal controller number (1-10000) assigned in SymNet Composer
    - name: controller_position
      type: integer
      description: 16-bit value (0-65535)

- id: controller_change
  label: Change Controller (CC)
  kind: action
  command: "CC {controller_number} {dec_inc} {amount}"
  params:
    - name: controller_number
      type: integer
      description: Decimal controller number (1-10000)
    - name: dec_inc
      type: integer
      description: 0 = decrement, 1 = increment
    - name: amount
      type: integer
      description: Increment/decrement amount (0-65535)

- id: get_controller
  label: Get Controller (GS)
  kind: query
  command: "GS {controller_number}"
  params:
    - name: controller_number
      type: integer
      description: Decimal controller number (1-10000)

- id: get_controller_with_number
  label: Get Controller with Controller Number (GS2)
  kind: query
  command: "GS2 {controller_number}"
  params:
    - name: controller_number
      type: integer
      description: Decimal controller number (1-10000)

- id: get_preset
  label: Get Preset (GPR)
  kind: query
  command: "GPR"

- id: get_controller_block
  label: Get Controller Block (GSB)
  kind: query
  command: "GSB {controller_number} {block_size}"
  params:
    - name: controller_number
      type: integer
      description: Starting decimal controller number (1-10000)
    - name: block_size
      type: integer
      description: Number of consecutive controllers (max 256)

- id: get_controller_block_with_number
  label: Get Controller Block with Controller Number (GSB2)
  kind: query
  command: "GSB2 {controller_number} {block_size}"
  params:
    - name: controller_number
      type: integer
      description: Starting decimal controller number (1-10000)
    - name: block_size
      type: integer
      description: Number of consecutive controllers (max 256)

- id: get_controller_block_with_number_echo
  label: Get Controller Block with Controller Number, Echo (GSB3)
  kind: query
  command: "GSB3 {controller_number} {block_size}"
  params:
    - name: controller_number
      type: integer
      description: Starting decimal controller number (1-10000)
    - name: block_size
      type: integer
      description: Number of consecutive controllers (max 256)

- id: load_preset
  label: Load Preset (LP)
  kind: action
  command: "LP {preset_number}"
  params:
    - name: preset_number
      type: integer
      description: Preset number (1-1000)

- id: flash_unit_leds
  label: Flash Unit LEDs (FU)
  kind: action
  command: "FU [{cycles}]"
  params:
    - name: cycles
      type: integer
      description: Number of on/off cycles; 0 halts flashing; default 8

- id: set_system_string
  label: Set System String (SSYSS)
  kind: action
  command: "SSYSS {unit}.{resource}.{enum}.{card}.{channel}={value}"
  params:
    - name: unit
      type: integer
      description: Unit enumerator (e.g. 1 for unit labeled Edge-1)
    - name: resource
      type: integer
      description: Resource number (1000=speed dial number, 1001=speed dial name, 1004=telephone digits for direct dial)
    - name: enum
      type: integer
      description: Zero-based enum (0-19 for speed dials 1-20)
    - name: card
      type: integer
      description: Card slot (0-3 for A-D)
    - name: channel
      type: integer
      description: Zero-based channel (0 where not applicable)
    - name: value
      type: string
      description: String value to set

- id: get_system_string
  label: Get System String (GSYSS)
  kind: query
  command: "GSYSS {unit}.{resource}.{enum}.{card}.{channel}"
  params:
    - name: unit
      type: integer
      description: Unit enumerator
    - name: resource
      type: integer
      description: Resource number (1000-1006)
    - name: enum
      type: integer
      description: Zero-based enum (0-19 for speed dials)
    - name: card
      type: integer
      description: Card slot (0-3 for A-D)
    - name: channel
      type: integer
      description: Zero-based channel

- id: push_global_enable_disable
  label: Global Push Enable/Disable (PU)
  kind: action
  command: "PU {on_off} [{low} [{high}]]"
  params:
    - name: on_off
      type: integer
      description: 0=OFF, 1=ON
    - name: low
      type: integer
      description: Optional lowest controller number (1-10000)
    - name: high
      type: integer
      description: Optional highest controller number (1-10000)

- id: push_enable
  label: Push Enable (PUE)
  kind: action
  command: "PUE [{low} [{high}]]"
  params:
    - name: low
      type: integer
      description: Optional lowest controller number (1-10000)
    - name: high
      type: integer
      description: Optional highest controller number (1-10000)

- id: push_disable
  label: Push Disable (PUD)
  kind: action
  command: "PUD [{low} [{high}]]"
  params:
    - name: low
      type: integer
      description: Optional lowest controller number (1-10000)
    - name: high
      type: integer
      description: Optional highest controller number (1-10000)

- id: get_push_enabled_controllers
  label: Get Push-enabled Controllers (GPU)
  kind: query
  command: "GPU [{low} [{high}]]"
  params:
    - name: low
      type: integer
      description: Optional lowest controller number (1-10000)
    - name: high
      type: integer
      description: Optional highest controller number (1-10000)

- id: push_refresh
  label: Push Refresh (PUR)
  kind: action
  command: "PUR [{low} [{high}]]"
  params:
    - name: low
      type: integer
      description: Optional lowest controller number (1-10000)
    - name: high
      type: integer
      description: Optional highest controller number (1-10000)

- id: push_clear
  label: Push Clear (PUC)
  kind: action
  command: "PUC [{low} [{high}]]"
  params:
    - name: low
      type: integer
      description: Optional lowest controller number (1-10000)
    - name: high
      type: integer
      description: Optional highest controller number (1-10000)

- id: set_push_interval
  label: Set Push Interval (PUI)
  kind: action
  command: "PUI {milliseconds}"
  params:
    - name: milliseconds
      type: integer
      description: Push interval in ms (20-30000)

- id: set_push_threshold
  label: Set Push Threshold (PUT)
  kind: action
  command: "PUT [{parameter_thresh} [{meter_thresh}]]"
  params:
    - name: parameter_thresh
      type: integer
      description: Optional parameter threshold (0-65535)
    - name: meter_thresh
      type: integer
      description: Optional meter threshold (0-65535)

- id: set_baud
  label: Set Baud (SB)
  kind: action
  command: "SB {baud}"
  params:
    - name: baud
      type: integer
      description: Baud rate; one of 1200, 2400, 4800, 9600, 19200, 38400, 57600, 115200

- id: set_quiet_mode
  label: Set Quiet Mode (SQ)
  kind: action
  command: "SQ {on_off}"
  params:
    - name: on_off
      type: integer
      description: 0=OFF, 1=ON

- id: set_echo_mode
  label: Set Echo Mode (EH)
  kind: action
  command: "EH {on_off}"
  params:
    - name: on_off
      type: integer
      description: 0=OFF, 1=ON

- id: nop
  label: NOP (No Operation)
  kind: action
  command: "NOP"

- id: quit_tcp_session
  label: Quit TCP/IP Session (Q!)
  kind: action
  command: "Q!"

- id: get_ip_address
  label: Get IP Address (RI)
  kind: query
  command: "RI"

- id: get_version
  label: Get Version (V)
  kind: query
  command: "V"

- id: reboot
  label: Reboot Device (R!)
  kind: action
  command: "R!"

- id: prefix_echo
  label: Echo Mode Prefix ($e)
  kind: action
  command: "$e {command}"
  params:
    - name: command
      type: string
      description: Command to execute with one-time echo

- id: prefix_verbose
  label: Verbose Mode Prefix ($v)
  kind: action
  command: "$v {command}"
  params:
    - name: command
      type: string
      description: Command to execute with one-time verbose response

- id: prefix_quiet
  label: Quiet Mode Prefix ($q)
  kind: action
  command: "$q {command}"
  params:
    - name: command
      type: string
      description: Command to execute with one-time quiet response

Feedbacks

- id: ack
  label: ACK
  type: string
  values: ["ACK"]

- id: nak
  label: NAK
  type: string
  values: ["NAK"]
  description: Returned when command is interpreted but fails for any reason (e.g. controller number does not exist, invalid block size, Q! sent on non-TCP connection)

- id: pushed_data
  label: Pushed Controller Data
  type: string
  description: Format "#<CONTROLLER NUMBER>=<CONTROLLER POSITION><CR>"; 5-digit zero-padded number and position; up to 64 strings per push batch

- id: push_settings
  label: Push Settings (GPU 0)
  type: string
  description: Global=0/1 then five 5-digit values: global lower limit, global upper limit, parameter threshold, meter threshold, push interval in ms

Variables

# Per-controller 16-bit values (0-65535) interpreted according to the parameter
# type assigned in SymNet Composer (fader, button, input/output selector, meter,
# LED, ratio, frequency, width/Q, attack/release/hold, pan, delay, gain,
# threshold, depth, etc.). The mapping is site-specific.
- id: controller_value
  label: Controller Position
  type: integer
  range: 0-65535
  description: Universal 16-bit value; interpretation depends on the controller's assigned parameter type in SymNet Composer

Events

- id: pushed_change
  label: Pushed Parameter Change
  description: Unsolicited GSB2-format data sent out RS-232 and Ethernet (UDP+TCP) when a push-enabled controller's underlying parameter changes. Default push interval 100ms. Up to 64 strings per interval.
- id: pushed_system_string
  label: Pushed System String
  description: Unsolicited system string pushes (speed dial name/number changes, etc.) enabled via Tools->Site Preferences "Enable System String Pushing". Sent out RS-232 and Ethernet.

Macros

# UNRESOLVED: no explicit multi-step macro sequences documented in source.

Safety

confirmation_required_for: []
interlocks: []
# UNRESOLVED: no safety warnings, interlocks, or power-on sequencing procedures
# documented in the source. Source notes the rear panel reset button erases
# accessory port settings and "should only be used as a last resort since it
# also resets many other settings" but does not document a formal safety
# procedure.

Notes

  • Protocol is text/ASCII; commands terminated with carriage return (, ASCII 13). Commands may optionally include a zero-termination character on input but not on output.
  • Same command syntax works identically over RS-232, TCP/IP, and UDP/IP — the Ethernet protocol is the RS-232 command protocol carried over an Ethernet network.
  • TCP/IP control uses no Telnet options or escape sequences. Up to 4 concurrent TCP telnet sessions; a 5th connection evicts the least recently used session.
  • UDP responses go to the last received IP:port (saved in non-volatile memory across power cycles). TCP must re-initiate after power cycle.
  • RS-232 default: 57600 baud, 8 data bits, 1 stop bit, no parity, no flow control. Echo OFF, Quiet Mode ON at startup. SB/SQ/EH commands modify these at runtime; settings persist across power cycles but are overridden by the next pushed Site File.
  • Push is globally enabled at power-on; individual controllers must also be enabled via PUE (or have "Enable Push" set in SymNet Composer). Baud 115200 recommended if pushing a large volume of data.
  • Controller numbers 1-10000, assigned per-site in SymNet Composer. A value of 0 generally means "minimum" and 65535 means "maximum" for the assigned parameter type; 16-bit resolution is quantized to parameter granularity on read-back.
  • Fader formula: Volume dB = -72 + 84 * (controller_position/65535); OFF when position=0. Generic: MIN + (MAX-MIN) * (position/65535).
  • The "Firmware Version" example in the V command section shows Prism/Edge/Radius-class firmware (Dante, ARC-Web, RS-232 firmware V1.55, etc.); version example is illustrative, not authoritative for any specific unit.
  • This spec is derived from the SymNet Composer v2.0 control protocol document which is shared by Edge, Radius, Radius AEC, xControl, and other Composer-based units (including Prism per vendor FAQ). Prism-specific command extensions or limitations are not documented in the source.

Provenance

source_domains:
  - usermanual.wiki
  - symetrixinc.com
  - d3b79pswu7f4ma.cloudfront.net
  - manuals.plus
source_urls:
  - https://usermanual.wiki/Document/SymNetComposercp.1610368993.pdf
  - https://www.symetrixinc.com/wp-content/uploads/2023/05/Symetrix_PROTOCOL_Jupiter_cp2.pdf
  - https://d3b79pswu7f4ma.cloudfront.net/pdf-download/Jupiter-Control-Protocol.pdf
  - https://manuals.plus/symetrix/prism-8x8-programmable-digital-signal-processor-manual.pdf
  - https://manuals.plus/m/7892b80f0f9db39d2bd22283ff673072d1be514180c65f0d403de81d6549808e_optim.pdf
retrieved_at: 2026-06-12T00:06:56.335Z
last_checked_at: 2026-06-12T20:01:01.754Z

Verification Summary

verdict: verified
checked_at: 2026-06-12T20:01:01.754Z
matched_actions: 31
action_count: 31
confidence: medium
summary: "All 31 spec actions match their literal wire-level counterparts in the source; transport values (port 48631, baud 57600, 8N1, no flow control) all confirmed; source catalogue is fully represented by the spec. (4 unresolved item(s) noted in Known Gaps.)"

Known Gaps

- "Prism-specific firmware version, model subvariants, and any Prism-only command extensions not documented in the generic Composer v2.0 protocol."
- "no explicit multi-step macro sequences documented in source."
- "no safety warnings, interlocks, or power-on sequencing procedures"
- "Prism-specific model variants (e.g. Prism 4x4, Prism 8x8), firmware compatibility ranges, voltage/current/power specs, and any Prism-only command extensions."

From the AI4AV catalog (https://ai4av.net) · ODbL-1.0