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 | 15/109
SSC Data Structure Specification
4.3.2 SSC Messages
A Message is the protocol unit of transmission. Any application that sends SSC Messages is a SSC
Client, any application that receives SSC Messages is a SSC Server.
A SSC Message MUST be sent as a single closed JSON form describing a JSON object. Extra
whitespace between the elements of the message MUST be ignored by the receiver.
This means that every SSC Message is enclosed in a pair of curly brackets { }.
4.3.3 SSC Addresses
Every SSC Server implements a set of SSC Methods. SSC Methods are the potential destinations
of SSC Messages received by the SSC Server, and correspond to each of the points of control that
the application makes available. "Invoking" a SSC Method is analogous to a procedure call; it means
supplying the method with arguments and causing the method’s effect to take place. The SSC Server
MUST respond to each received SSC Message by sending a SSC Method Reply Message to the orig-
inating SSC Client.
A SSC Server’s SSC Methods are arranged in a tree structure called a SSC Address Space. The leaves
of this tree are the SSC Methods and the branch nodes are called SSC Containers. A SSC Server’s
SSC Address Space MAY be dynamic; that is, its contents and shape MAY change over time.
Each SSC Method and each SSC Container other than the root of the tree MUST have a symbolic
name which MUST be composed entirely of printable ASCII characters other than the following:
" " space, ASCII 32
" double quote, ASCII 34
# number sign, ASCII 35
* asterisk, ASCII 42
, comma, ASCII 44
/ slash, ASCII 47
: colon, ASCII 58
? question mark, ASCII 63
[ open bracket, ASCII 91
] close bracket, ASCII 93
{ open curly brace, ASCII 123
} close curly brace, ASCII 125
The SSC Address of a SSC Method is a symbolic name giving the full path to the SSC Method in the
SSC Address Space, starting from the root of the tree. A SSC Method’s SSC Address begins with the
character "/" (forward slash), followed by the names of all the containers, in order, along the path
from the root of the tree to the SSC Method, separated by forward slash characters, followed by the
name of the SSC Method. The syntax of SSC Addresses was chosen to match the syntax of URLs. The
SSC address syntax SHOULD be used in documentation, but it SHOULD NOT be used as an argument
to other SSC Methods; the JSON syntax of hierarchical objects SHOULD be used instead.
A SSC Method may be invoked with an empty argument list by supplying the JSON null value. This
kind of SSC Method call SHOULD normally have the semantics of a query resulting in the current val-
ue of the property addressed by the method, without further side effects. SSC Methods that change
the state of a SSC Server SHOULD normally have arguments.
Example:
• query current gain of OUT1 output of AUDIO module:
TX: { "audio": { "out1": { "gain_db": null }}}
RX: { "audio": { "out1": { "gain_db": 5 }}}
• change gain of OUT1 output of AUDIO module (note that the server adapts the value):
TX: { "audio": { "out1": { "gain_db": 999 }}}
RX: { "audio": { "out1": { "gain_db": 6 }}}