Sound Control Protocol Digital 6000 (EM 6000 | L 6000)

Table Of Contents
SSC Developer‘s guide for Digital 6000 | 12/57
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 level of OUT1 output of AUDIO module:
TX: { "audio": { "out1": { "level_db": null }}}
RX: { "audio": { "out1": { "level_db": 5 }}}
change level of OUT1 output of AUDIO module (note that the server adapts the value):
TX: { "audio": { "out1": { "level_db": 999 }}}
RX: { "audio": { "out1": { "level_db": 6 }}}