OSC Output | Sends simple data via the OSC protocol. | |
OSC Input | Receives simple data via the OSC protocol. | |
OSC Image | Receives an image via the OSC protocol. | |
Timecode OSC | Receives a Timecode via the OSC protocol. See also Timecode Nodes. |
OSC stands for Open Sound Control and 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.
OSC is often used to connect Ventuz to external devices or to distribute information in a cluster of Ventuz machines. Prior to the introduction of the dedicated Ventuz Input Subsystem, OSC was often used to distribute keystrokes or mouse motion from one master machine to all rendering machines.
Since OSC is a protocol without predefined messages, it is the responsibility of the hardware device or driver manufacture to specify suitable messages which an application can use in order to interact with the device. For more information on OSC syntax, see Open Sound Control.
Both the Input and Output nodes use the Custom Model to provide user definable input or output properties to match the parameter list of a message. The Address property is used to define which type of message the node will listen to or sends to, respectively.
The only further information required is the port to listen to (in case of the input node) or the IP-address and port to send to (in case of the output node). The input node will open a socket on the local machine and specified port when created. If the MulticastIP is set, the node will listen to that address instead of the port on the local machine.
Only one process can open a socket on a specific port at the same time. If two separate instances of the Ventuz application are launched and both open a scene containing an OSC node with the same port, the latter of the two will fail to open the socket. The same is true for other applications that might use the same port. Watch out for errors in the Message View. In particular, the Ventuz Input Subsystem grabs the port 3333 during application launch for receiving TUIO messages.
OSC nodes in a scene will only send/receive nodes as long as the scene is actively being rendered. If multiple scenes are open, all non-active scenes will not send/receive OSC messages.
The OSC protocol does not define a parameter type for images, so Ventuz "extended" that part of the protocol. The easiest way to send an image to Ventuz via OSC is to use the Ventuz reference .net OSC implementation. This only supports UDP packages and the transmission does not use any sequence number or packet recovery! It is designed for pushing streams of images into Ventuz rather than reliable image transmission.
A specialized version of the input node that accepts a single 64bit integer parameter for an OSC message and translates the result into a timecode based on the Timebase property. See also Timecode Nodes.
All OSC receiver nodes have the AutoDeactivate property. If enabled, this will deactivate the OSC node if the parent Hierarchy Container is blocked.