Sound Control Protocol for SpeechLine Digital Wireless
Table Of Contents
- 1. Introduction
- 2. Open Sound Control Overview
- 3. Conventions
- 4. SSC Data Structure Specification
- 5. SSC subscriptions - /osc/state/subscribe
- 6. SSC Transport Layer Adaptations
- 7. Developer’s Guide for SL Rack Receiver DW
- 8. SSC Method List (SL Rack Receiver DW)
- 8.1 /interface/version
- 8.2 /osc/xid
- 8.3 /osc/version
- 8.4 /osc/error
- 8.5 /osc/schema
- 8.6 /osc/limits
- 8.7 /osc/feature/pattern
- 8.8 /osc/feature/baseaddr
- 8.9 /osc/feature/subscription
- 8.10 /osc/feature/timetag
- 8.11 /osc/state/subscribe
- 8.12 /osc/state/close
- 8.13 /osc/state/prettyprint
- 8.14 /device/name
- 8.15 /device/group
- 8.16 /device/language
- 8.17 /device/location
- 8.18 /device/identity/product
- 8.19 /device/identity/version
- 8.20 /device/identity/serial
- 8.21 /device/identity/vendor
- 8.22 /device/network/ether/interfaces
- 8.23 /device/network/ether/macs
- 8.24 /device/network/ipv4/interfaces
- 8.25 /device/network/ipv4/auto
- 8.26 /device/network/ipv4/ipaddr
- 8.27 /device/network/ipv4/netmask
- 8.28 /device/network/ipv4/gateway
- 8.29 /device/network/ipv4/fixed_ipaddr
- 8.30 /device/network/ipv4/fixed_netmask
- 8.31 /device/network/ipv4/fixed_gateway
- 8.32 /device/network/ipv6/interfaces
- 8.33 /device/network/ipv6/ipaddr
- 8.34 /device/network/mdns_responder
- 8.35 /device/state
- 8.36 /device/progress
- 8.37 /device/update/confirmation
- 8.38 /device/reset
- 8.39 /device/factory_reset
- 8.40 /rx1/identify
- 8.41 /rx1/pair
- 8.42 /rx1/rf_quality
- 8.43 /rx1/walktest
- 8.44 /rx1/mute_switch_active
- 8.45 /rx1/sync_info
- 8.46 /rx1/rfpi
- 8.47 /rx1/last_paired_ipei
- 8.48 /rx1/autolock
- 8.49 /rx1/warnings
- 8.50 /rx1/mute_mode
- 8.51 /rx1/mute_state
- 8.52 /mates/active
- 8.53 /mates/tx1/device_type
- 8.54 /mates/tx1/bat_type
- 8.55 /mates/tx1/bat_state
- 8.56 /mates/tx1/bat_charging
- 8.57 /mates/tx1/bat_gauge
- 8.58 /mates/tx1/bat_lifetime
- 8.59 /mates/tx1/bat_bars
- 8.60 /mates/tx1/bat_health
- 8.61 /mates/tx1/bat_cycles
- 8.62 /mates/tx1/switch1/label
- 8.63 /mates/tx1/switch1/state
- 8.64 /mates/tx1/acoustic
- 8.65 /mates/tx1/warnings
- 8.66 /mates/tx1/gooseneck_state
- 8.67 /mates/tx1/agc
- 8.68 /mates/tx1/power_lock
- 8.69 /mates/tx1/power_down
- 8.70 /mates/tx1/pairing_lock
- 8.71 /mates/tx1/auto_power_off
- 8.72 /mates/tx1/led_active
- 8.73 /audio/out1/label
- 8.74 /audio/out1/level_db
- 8.75 /audio/out1/gain_db
- 8.76 /audio/equalizer/preset
- 8.77 /audio/low_cut
- 8.78 /audio/effects_reset
- 8.79 /brightness
- 9. SSC Error List (SL Rack Receiver DW)
- 9.1 1xx Informational
- 9.2 2xx Success
- 9.3 3xx Redirection
- 9.4 4xx Client Error
- 9.4.1 400 Bad Request
- 9.4.2 401 Unauthorized
- 9.4.3 403 Forbidden
- 9.4.4 404 Not Found
- 9.4.5 406 Not Acceptable (E.g. wrong type for parameter)
- 9.4.6 408 Request Timeout
- 9.4.7 409 Conflict
- 9.4.8 410 Gone
- 9.4.9 413 Request Entity Too Large
- 9.4.10 414 Request Too Complex
- 9.4.11 422 Unprocessable Entity
- 9.4.12 423 Locked
- 9.4.13 424 Failed Dependency
- 9.4.14 450 Answer Too Long
- 9.4.15 454 Parameter Address Not Found
- 9.5 5xx Server Error
- 10. Developer’s Guide for SL Multi-Channel Receiver DW
- 11. SSC Method List (SL Multi-Channel Receiver DW)
- 11.1 /interface/version
- 11.2 /osc/xid
- 11.3 /osc/version
- 11.4 /osc/error
- 11.5 /osc/schema
- 11.6 /osc/limits
- 11.7 /osc/feature/pattern
- 11.8 /osc/feature/baseaddr
- 11.9 /osc/feature/subscription
- 11.10 /osc/feature/timetag
- 11.11 /osc/state/subscribe
- 11.12 /osc/state/close
- 11.13 /osc/state/prettyprint
- 11.14 /osc/ping
- 11.15 /device/name
- 11.16 /device/dante/name
- 11.17 /device/location
- 11.18 /device/position
- 11.19 /device/system
- 11.20 /device/language
- 11.21 /device/identity/product
- 11.22 /device/identification/visual
- 11.23 /device/identity/version
- 11.24 /device/identity/serial
- 11.25 /device/identity/vendor
- 11.26 /device/led/brightness
- 11.27 /device/network/ether/interfaces
- 11.28 /device/network/ether/macs
- 11.29 /device/network/interface_mapping
- 11.30 /device/network/ipv4/interfaces
- 11.31 /device/network/ipv4/auto
- 11.32 /device/network/ipv4/ipaddr
- 11.33 /device/network/ipv4/netmask
- 11.34 /device/network/ipv4/gateway
- 11.35 /device/network/ipv4/manual_ipaddr
- 11.36 /device/network/ipv4/manual_netmask
- 11.37 /device/network/ipv4/manual_gateway
- 11.38 /device/network/ipv6/interfaces
- 11.39 /device/network/ipv6/ipaddr
- 11.40 /device/network/mdns
- 11.41 /device/state
- 11.42 /device/update/enable
- 11.43 /device/update/progress
- 11.44 /device/rfpi
- 11.45 /device/restart
- 11.46 /device/standby
- 11.47 /device/restore
- 11.48 /device/date
- 11.49 /device/time
- 11.50 /device/timeprecision
- 11.51 /device/warnings
- 11.52 /rx1/state
- 11.53 /rx1/identification/visual
- 11.54 /rx1/update/confirmation
- 11.55 /rx1/update/progress
- 11.56 /rx1/pair/enable
- 11.57 /rx1/pair/progress
- 11.58 /rx1/rf_quality
- 11.59 /rx1/walktest
- 11.60 /rx1/mates
- 11.61 /rx1/mute_mode
- 11.62 /rx1/mute_state
- 11.63 /rx1/name
- 11.64 /rx1/master_follower/sync_info
- 11.65 /rx1/rfpi
- 11.66 /rx1/last_paired_ipei
- 11.67 /rx1/warnings
- 11.68 /mates/tx1/acoustic
- 11.69 /mates/tx1/active
- 11.70 /mates/tx1/agc
- 11.71 /mates/tx1/bat_bars
- 11.72 /mates/tx1/bat_charging
- 11.73 /mates/tx1/bat_cycles
- 11.74 /mates/tx1/bat_gauge
- 11.75 /mates/tx1/bat_health
- 11.76 /mates/tx1/bat_lifetime
- 11.77 /mates/tx1/bat_state
- 11.78 /mates/tx1/bat_type
- 11.79 /mates/tx1/device_type
- 11.80 /mates/tx1/gooseneck_state
- 11.81 /mates/tx1/led_active
- 11.82 /mates/tx1/switch1/label
- 11.83 /mates/tx1/power_down
- 11.84 /mates/tx1/auto_power_off
- 11.85 /mates/tx1/power_lock
- 11.86 /mates/tx1/pairing_button_lock
- 11.87 /mates/tx1/warnings
- 11.88 /audio/out1/desc
- 11.89 /audio/out1/label
- 11.90 /audio/out1/mixer/gain
- 11.91 /audio/out2/identity/version
- 11.92 /audio/out2/network/ether/interfaces
- 11.93 /audio/out2/network/ipv4/interfaces
- 11.94 /audio/out2/network/ether/macs
- 11.95 /audio/out2/network/ipv4/auto
- 11.96 /audio/out2/network/ipv4/ipaddr
- 11.97 /audio/out2/network/ipv4/netmask
- 11.98 /audio/out2/network/ipv4/gateway
- 11.99 /audio/out2/network/ipv4/manual_ipaddr
- 11.100 /audio/out2/network/ipv4/manual_netmask
- 11.101 /audio/out2/network/ipv4/manual_gateway
- 11.102 /audio/dante/mixer/gain
- 11.103 /audio/rx1/gain
- 11.104 /audio/rx1/equalizer/preset
- 11.105 /audio/rx1/low_cut
- 11.106 /audio/rx1/restore
- 11.107 /m/mixer/level
- 11.108 /m/rx1/level
- 11.109 /m/rx1/channel_level
- 12. SSC Error List (SL Multi-Channel Receiver DW)
- 12.1 1xx Informational
- 12.2 2xx Success
- 12.3 3xx Redirection
- 12.4 4xx Client Error
- 12.4.1 400 Bad Request
- 12.4.2 401 Unauthorized
- 12.4.3 403 Forbidden
- 12.4.4 404 Not Found
- 12.4.5 406 Not Acceptable (E.g. wrong type for parameter)
- 12.4.6 408 Request Timeout
- 12.4.7 409 Conflict
- 12.4.8 410 Gone
- 12.4.9 413 Request Entity Too Large
- 12.4.10 414 Request Too Complex
- 12.4.11 422 Unprocessable Entity
- 12.4.12 423 Locked
- 12.4.13 424 Failed Dependency
- 12.4.14 450 Answer Too Long
- 12.4.15 454 Parameter Address Not Found
- 12.5 5xx Server Error
- 13. Developer’s Guide for CHG 2N and CHG 4N
- 14. SSC Method List (CHG 2N/CHG 4N)
- 14.1 /interface/version
- 14.2 /osc/xid
- 14.3 /osc/version
- 14.4 /osc/error
- 14.5 /osc/schema
- 14.6 /osc/limits
- 14.7 /osc/feature/pattern
- 14.8 /osc/feature/baseaddr
- 14.9 /osc/feature/subscription
- 14.10 /osc/feature/timetag
- 14.11 /osc/state/subscribe
- 14.12 /osc/state/close
- 14.13 /osc/state/prettyprint
- 14.14 /device/name
- 14.15 /device/group
- 14.16 /device/language
- 14.17 /device/location
- 14.18 /device/identity/product
- 14.19 /device/identity/version
- 14.20 /device/identity/serial
- 14.21 /device/identity/vendor
- 14.22 /device/network/ether/interfaces
- 14.23 /device/network/ether/macs
- 14.24 /device/network/ipv4/interfaces
- 14.25 /device/network/ipv4/auto
- 14.26 /device/network/ipv4/ipaddr
- 14.27 /device/network/ipv4/netmask
- 14.28 /device/network/ipv4/gateway
- 14.29 /device/network/ipv4/fixed_ipaddr
- 14.30 /device/network/ipv4/fixed_netmask
- 14.31 /device/network/ipv4/fixed_gateway
- 14.32 /device/network/ipv6/interfaces
- 14.33 /device/network/ipv6/ipaddr
- 14.34 /device/network/mdns_responder
- 14.35 /device/state
- 14.36 /device/progress
- 14.37 /device/ptxversion_sl
- 14.38 /device/ptxversion_d1
- 14.39 /device/warnings
- 14.40 /device/reset
- 14.41 /device/factory_reset
- 14.42 /bays/active
- 14.43 /bays/device_type
- 14.44 /bays/serial
- 14.45 /bays/version
- 14.46 /bays/linkdate
- 14.47 /bays/charging
- 14.48 /bays/bat_gauge
- 14.49 /bays/bat_timetofull
- 14.50 /bays/bat_bars
- 14.51 /bays/bat_health
- 14.52 /bays/bat_cycles
- 14.53 /bays/identify
- 14.54 /bays/state
- 15. SSC Error List (CHG 2N/CHG 4N)
- 15.1 1xx Informational
- 15.2 2xx Success
- 15.3 3xx Redirection
- 15.4 4xx Client Error
- 15.4.1 400 Bad Request
- 15.4.2 401 Unauthorized
- 15.4.3 403 Forbidden
- 15.4.4 404 Not Found
- 15.4.5 406 Not Acceptable (E.g. wrong type for parameter)
- 15.4.6 408 Request Timeout
- 15.4.7 409 Conflict
- 15.4.8 410 Gone
- 15.4.9 413 Request Entity Too Large
- 15.4.10 414 Request Too Complex
- 15.4.11 422 Unprocessable Entity
- 15.4.12 423 Locked
- 15.4.13 424 Failed Dependency
- 15.4.14 450 Answer Too Long
- 15.4.15 454 Parameter Address Not Found
- 15.5 5xx Server Error
SSC Developer‘s guide for SpeechLine Digital Wireless | 14/109
SSC Data Structure Specification
For command and control applications it is desirable to access single properties independently. This
can be achieved in JSON syntax by the simple convention, that all the properties of a SSC Server that
are not mentioned in a JSON message are left unchanged.
In this way, applied to the example above, the JSON form
{ "audio": { "out1": { "gain_db": 5 } } }
can be understood as a SSC Method Call of the SSC Method "/audio/out1/gain_db" with the argu-
ment 5, presumably to set the gain to that level, or as an SSC Method Reply message stating the
current gain level.
4.2 JSON Message Transaction Syntax
The SSC Message exchange is described here as transaction using the following syntax:
Prefix "TX:" indicates a SSC Message that a SSC Client is sending to a SSC Server.
Prefix "RX:" indicates a SSC Message that the SSC Server will send back to the Client.
A SSC-Message is written verbatim, enclosed by curly brackets { }.
A transaction to set the gain of "audio" of "out1" to 1 then looks like this:
TX: { "audio": { "out1": { "gain_db": 1 }}}
RX: { "audio": { "out1": { "gain_db": 1 }}}
Note that the execution of the method results in a method reply message, which for simple property
setters states the actual value of the property resulting from executing the message.
The resulting value may be different from the supplied argument, e.g., for a read-only property, or if
the argument is out of range, and the device may adapt it to the allowed range (this is not considered
as an error):
TX: { "audio": { "out1": { "gain_db": 20000 }}}
RX: { "audio": { "out1": { "gain_db": 6 }}}
Getter-methods, which request the value of a property from the SSC Server, are realised by supplying
the special JSON value null as argument to method sent to the address of the property:
TX: { "audio": { "out1": { "gain_db": null }}}
RX: { "audio": { "out1": { "gain_db": 6 }}}
Compared to binary OSC, the JSON syntax is slightly more verbose for single attribute settings, but
this is compensated when multiple attributes are set in the same transaction:
TX: { "audio": { "out1": { "gain_db": 3, "label": null }}}
RX: { "audio": { "out1": { "gain_db": 3, "label": "AF_LABEL" }}}
4.3 SSC JSON Message Syntax
4.3.1 Elementary data types
All SSC data is composed of the primitive JSON data types:
• string: a sequence of zero or more Unicode characters in UTF-8 encoding, wrapped in double
quotes, using backslash escapes. A character is represented as a single character string. Binary
zero bytes can be included in a string using Unicode escape notation: "\u0000".
• number: a number in conventional "scientific" notation. 0, 42, -23, 3.141259, 1.0e+100
are all valid numbers. A Restricted SSC Server MAY reject non-integer numeric arguments, or it
MAY adapt them by silently converting them to integer values.
• true: the boolean true value.
• false: the boolean false value.
• null: indicates a missing value; used as pseudo argument for getter-methods.