Sound Control Protocol for ew D1

Table Of Contents
SSC Developer‘s guide for evolution wireless D1 | 12/56
SSC Data Structure Specification
to other SSC Methods; the JSON syntax of hierarchical objects SHOULD be used instead.
SSC Methods MAY be overloaded with respect to their arguments: the SSC Server may execute the
method in different ways depending on the arguments given.
SSC Methods MAY also be overloaded with respect to their Address: the SSC Server may execute
a different SSC Method instead, and reply with an SSC Method Reply to that different SSC Method
Address ("aliased" SSC Methods). Example: a wireless receiver might report the battery charge level
of the wireless transmitter either as a lifetime or as a percentage, and it might respond to a general
"battery state" SSC Method Address either by executing the lifetime or the percentage Method, de-
pending on the circumstances.
An 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 an SSC Server SHOULD normally have arguments.
Example:
query current gain of XLR2 output of OUT1 module:
TX: { "out1": { "xlr2": { "gain": null }}}
RX: { "out1": { "xlr2": { "gain": -10 }}}
change gain of XLR2 output of OUT1 module (note that the server adapts the value):
TX: { "out1": { "xlr2": { "gain": -10000 }}}
RX: { "out1": { "xlr2": { "gain": -15 }}}
4.3.4 SSC Message Dispatching and Pattern Matching
When an SSC Server receives an SSC Message, it must invoke the appropriate SSC Methods in its
SSC Address Space based on the SSC Messages SSC Address Patterns. This process is called dis-
patching the SSC Message to the SSC Methods that match its SSC Address Patterns. All the match-
ing SSC Methods are invoked with the same argument data, namely, the SSC Arguments in the SSC
Message.
The parts of an SSC Address or an SSC Address Pattern are the successive names of the JSON object
members in the SSC Method Call.
A received SSC Message must be dispatched to every SSC Method in the current SSC Address Space
whose SSC Address matches the SSC Messages SSC Address Pattern. An SSC Address Pattern
matches an SSC Address if:
The SSC Address and the SSC Address Pattern contain the same number of parts; and
Each part of the SSC Address Pattern matches the corresponding part of the SSC Address.
A part of an SSC Address Pattern matches a part of an SSC Address if every consecutive character
in the SSC Address Pattern matches the next consecutive substring of the SSC Address and every
character in the SSC Address is matched by something in the SSC Address Pattern. These are the
matching rules for characters in the SSC Address Pattern:
in the SSC Address Pattern matches any single character
* in the SSC Address Pattern matches any sequence of zero or more characters
A string of characters in square brackets (e.g., [aeiou]) in the SSC Address Pattern matches
any character in the string. Inside square brackets, the minus sign (-) and exclamation point (!)
have special meanings:
Two characters separated by a minus sign indicate the range of characters between the given
two in ASCII collating sequence. A minus sign at the end of the string has no special meaning.
An exclamation point at the beginning of a bracketed string negates the sense of the list,
meaning that the list matches any character not in the list. (An exclamation point anywhere
besides the first character after the open bracket has no special meaning.)
A comma-separated list of strings enclosed in curly braces (e.g., {foo,bar}) in the SSC Ad-
dress Pattern matches any of the strings in the list.
Any other character in an SSC Address Pattern can match only the same character.
When an SSC Address Pattern is dispatched to multiple SSC Methods, the order in which the match-
ing SSC Methods are invoked is unspecified.
Support for address pattern matching is OPTIONAL for an SSC Server; it MAY be left out in a restricted