Open Sound Control (OSC)


Open Sound Control is a network protocol designed for simple communication between computers and/or multimedia hardware devices such as synthesizers. It was originally designed to exchange music performance data and thus is often used as an alternative to the antiquated MIDI protocol.

Message

Open Sound Control is a message based protocol. Information is distributed by sending application defined messages, either with or without additional parameter values. Open Sound Control itself does not define any specific messages. Instead, hardware devices or software applications define a set of messages they interpret and it is usually up to the user to see if both software and hardware play along. There are a number of protocols based upon OSC such as TUIO which declare specific sets of messages with a defined meaning (i.e. MultiTouch input data in the case of TUIO).

For example, one of the TUIO messages has the following syntax definition:

/tuio/2Dcur set s x y X Y m

The first part up to the first space is the message address pattern (sometimes also called name). It is a URL style string to identify a particular message. Everything else are parameters that are expected to be received with a message of that address. There are various types of parameters that are supported by OSC, for example float values and strings.

OSC in Ventuz

Ventuz provides a number of OSC Nodes which can both be used to receive input messages and send output messages. The OSC nodes support the Custom Model mechanism to define an arbitrary list of parameters which will then be available as input or output properties.

The OSC input/output nodes will only send/receive information when a scene is actively being rendered (i.e. not when loaded but on an inactive tab).


Ventuz development has released a free C# implementation for receiving and sending OSC messages. It is available here.

Applications

OSC is a great way to create interaction between various Ventuz machines or connect hardware devices or other software systems to Ventuz. For example, there are various iPhone/iPad Apps that are capable of sending OSC message and can therefore be used as remote controls for a Ventuz scene. Other common use cases focus around external light or sound systems which should work synchronously with the Ventuz presentation.

Successful communication with external devices via OSC is mainly dependent on knowing the correct OSC addresses and parameters sent/understood by a device. Ventuz only provides the general mechanism to receive/send OSC data packages, please check the device/software documentation for what the specific addresses/parameters are.