Open Sound Control

Introduction to Generic OSC

If you are developing your own control systems to integrate with SPAT, you might find it useful to know that it is possible to export a detailed description of all OSC patterns, syntax and usage to a text file for reference. You will find that option in the SPAT preferences. You will also find a complete OSC table in the appendix.

Enable commands log will display the received and emitted OSC messages in the log windows to confirm you are receiving data. Shift + F7 will open the log window.

In general, SPAT OSC patterns have the form of:

/source/[remote number]/x

where [remote number] represents the Remote number of the Virtual Source, or the index (i.e. the room number) of the Room you wish to control with the message.

The three positional formats can be packed into one message if that option is set in the OSC Connections Matrix;

/source/[remote number]/xyz Cartesian co-ordinates in meters

/source/[remote number]/aed Polar co-ordinates (azimuth, distance and elevation)

!> Take care to automate EITHER Cartesian OR Polar, not both.

Sometimes, it is more convenient to have the [remote number] parameter as an argument of the OSC message. This option is available in the OSC Connections Matrix, namely Index as Arg. If this option is switched in, then the messages will be of the pattern

/source/xyz ifff

where i is an integer denoting the remote number of the target, and f according to convention is a float denoting the values of the message.

For more details about the SPAT Revolution OSC dictionary and its usage syntax please refer to Appendix C.

The output rate allows changing how fast the engine will send OSC messages. The lower the value is, the more SPAT Revolution will send OSC message and the remote will display the changes, but it will also increase the stress on the CPU. If you experienced some CPU overload when moving sources through OSC command, you can try to increase the value. By default, it is set to 5.0 ms.

OSC Connections Menu

There is a lot of flexibility in the OSC connection menu. We find it in the SPAT Preferences page.

Eight different connections can be set up, either as input or output connection. It is displayed as a table where each connection is a line.

The first parameter is the connection type, which offer many presets for both input and output. These presets come with dedicated network ports, dedicated option and dedicated transform if needed.

OSC presets are:

Then the IP address needs to be set. If the OSC connection is established locally, on the same computer, the port is dedicated to local network usage. For other configurations, we need to inform the IP of the targeted device.

Lastly, the port number can be adjusted to a free one. If a “custom” preset is loaded, we most likely need to edit this parameter to establish a network connection.

And finally, it is possible to name the OSC slot, clicking on the name of the top of the right panel.

If we want to deactivate an OSC socket without losing the parameters, it is possible to deactivate an OSC socket. To do this, click right on the OSC socket number and click on Activate/Deactivate, or shift-click on the OSC socket number. As it, the input or output will be deactivated.

If we loose the sync between the remote and SPAT, it is also possible to dump all the project properties on a particular socket. To do so, click right on the OSC socket number and click on Dump project. To note that the project is always dumped when the OSC socket is activated, and when the OSC IP address or port are changed.

OSC Transform

Interfacing different devices and software in OSC can be problematic as each piece of equipment can have its own scale of value. To overcome these difficulties, some OSC transform presets have been implemented.

Transform presets are accessible for each OSC connection and allow some quick re-scaling of the values.

If the included transform preset does not fit yours needs, you can click on the + button to open the custom OSC transform menu. In this menu, you can choose how to scale our input our output values. You can also choose to exclude specific OSC command from the scaling rules.