Skip to main content
Version: 2.0

Introduction to Open Sound Control

Configuration

Each 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 Preferences View.

OSC Receive

Send 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 Preferences View page.

OSC Send

To 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 Preferences View page.

You can now set multiple OSC destinations, and choose what coordinate format will be output for source positioning.

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.

OSC Output Filter

For each OSC Output, you can setup an OSC filter that allows removing some messages from the OSC external output (OSC Send) of HOLOPHONIX.

Instead of having to write complete OSC commands, you can simply write keywords. Any OSC message containing that keyword will be discarded.

Add a new keyword with the 'ADD' button on the left of the screen, edit or delete a keyword by clicking on the pen and trash can icons at the right of the keyword.

To exit this window, click on the red cross.

Message Structure

OSC messages are structured in two parts: first the address (whose elements are separated by slashes: /), followed by the argument (the value) to transmit.

/{element}/{id}/{path/to/the/parameter} {argument#1} {argument#2} ...

Example

To set the second spatialization bus level to -2.5 dB, one would send the following command:

/bus/2/gain -2.5

Address

The 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 Types

The "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 or false, 0 or 1)

Rounding

When 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 Scales

Regarding 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-Sensitive

When the argument is a string of characters, the messages will not be case-sensitive.

Example: Those two messages will be strictly equivalent:

/bformat/1/norm FuMa
/bformat/1/norm fuma

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:

/track/*/azim 10

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:

/stereo/[1-5]/gain -6
/stereo/{1,2,3,4,5}/gain -6

Example 3: If you want to mute all mono and stereo sources, send:

/{track,stereo}/*/mute 1

Get the OSC Address

To get the OSC Address of a parameter, just put your mouse over this parameter. In the bottom-left corner of the interface, you will see displayed the OSC message corresponding to that parameter.

OSC AddressOSC Address