Introduction to Open Sound Control
#
ConfigurationEach and every HOLOPHONIX parameters can be controlled or monitored via OSC (Open Sound Control) commands.
To configure the OSC Receive and Sends, open the OSC tab of the Setup View.
#
OSC ReceiveSend the OSC messages to the processor’s IP address on the default port 4003. However, you can change that port number. See the OSC tab of the Setup View page.
#
OSC SendTo send OSC commands from HOLOPHONIX to an external device, you first need to activate and configure the destination IP address and port. See the OSC tab of the Setup View page.
You can now set multiple OSC destinations, and choose what coordinate format will be output for source positioning.
warning
Ports 4002, 4001 and below 1024 are not allowed.
When a parameter's value is changed (such as source position or any source or bus setting for example), its new value is sent to the destination.
#
Message StructureOSC messages are structured in two parts: first the address (whose elements are separated by slashes: /
), followed by the argument (the value) to transmit.
#
ExampleTo set the second spatialization bus level to
-2.5 dB
, one would send the following command:
#
AddressThe address itself contains first the type of object (mono source /track
, stereo source /stereo
, spatialization bus /bus
, etc.), then the index of the object, and finally the parameter to control.
When selecting an object, its header in the inspector displays the OSC address to use to control it, with its index included.
Depending on the type of object to control, the address can start with one of the following:
/track
(mono object)/stereo
(stereo object)/multi
(multichannel object)/tree
(mic tree object)/aformat
(A-Format ambisonics stream source)/bformat
(B-Format ambisonics stream source)/zylia
(Zylia microphone stream source)/eigenmike
(Eigenmike microphone stream source)/hoastream
(Higher Order Ambisonics stream source)/bus
(sound spatialization bus)/reverb
(reverberation associated with each bus)/d2m
(direct to master source)/d2b
(direct to bus source)/thru
(bus through)/lfe
(LFE bus)/monitoring
(monitoring bus)/master
(master bus)
#
Arguments#
Argument TypesThe "argument" is the value that is sent to a specific parameter. There are four types of arguments:
- integer numbers (
1
,2
,3
, etc.) - decimal numbers (
1.1
,1.2
,1.3
, etc.) - string of characters (
abc
,xyz
), - booleans (
true
orfalse
,0
or1
)
#
RoundingWhen a decimal value is sent instead of an integer, the value will be rounded to the closest integer (for example, 1.5 will become 1, and 1.6 will become 2).
#
Angular ScalesRegarding the values expressed in degrees, they can be sent to HOLOPHONIX on the native -180° to +180° scale, but also from 0° to 360°. For exemple, if you set an angle to +190°, it will be converted to -170°, its equivalent direction on the native scale.
#
Non Case-SensitiveWhen the argument is a string of characters, the messages will not be case-sensitive.
Example: Those two messages will be strictly equivalent:
#
Pattern Matching (Groups and substitutions)Specific structures of messages allow controlling several elements together:
- Use the
?
character as a substitution element for a single character in the addresses, - Use the
*
character as a substitution element for several characters, - Use straight brackets
[
]
with a dash-
to control a range:[1-4]
for 1, 2, 3 and 4 for example, - Use curvy brackets
{
}
with a coma,
to control a list:{1,4,5}
for 1, 4 and 5 only; it also works with strings of characters:{stereo, multi}
for example
Example 1: If you want to set the azimuth position of all the mono sources to
+10°
, you could send:
Example 2: If you want to set the level to
-6 dB
for stereo sources 1 to 5, you could send either of these two messages:
Example 3: If you want to mute all mono and stereo sources, send: