Open sound control

from Wikipedia, the free encyclopedia

Open Sound Control (OSC) is a message-based network protocol that is mainly used for real-time processing of sound over networks and multimedia installations.

Control signals (eg. Hardware MIDI - keyboard ) or software (. Eg Processing , Vvvv , Csound , Max / MSP , Pure Data , SuperCollider , ChucK ., EyesWeb) generated and then via OSC in the form of so-called news (OSC messages), which in turn are packaged in bundles (OSC bundles), passed on to an interface and thus control an output. This can e.g. B. be other sound outputs, such as a sound application on another computer.

OSC is independent of the transport protocol, but UDP is usually used. However, depending on the requirements, it is also possible to transport OSC via TCP or a serial interface .

Open Sound Control was developed at the University of California at Berkeley .

Messaging

Messages are transmitted in OSC in the simplest possible way. An OSC packet consists of its data and a byte that specifies the length of the data. The length is always a multiple of 4 (which is due to the block size of 32 bits). It is sent via TCP or UDP .

Data types

The data types are:

  • int32
  • float32
  • OSCString, sequence of ASCII characters , zero - terminated ( C- String), padded with 0..3 NULL characters to a length divisible by four.
  • OSCTimetag (64 bit). The first 32 bits represent the seconds since January 1st, 1900, the second 32 bits represent the fraction of a second, this is the NTP format.
  • OSCBlob

Structure of a message

An OSC message first contains a (zero-terminated) character string with the address of the parameter to be changed.

z. E.g .: "/ synthesizer / zynaddsubfx / filter / lowpass1".

A comma is followed by the number and type of parameters in a (zero-terminated) character string. For two float values ​​one would specify ", ff".

Then the individual values ​​for the parameters follow. If you want to use our imaginary synthesizer z. B. to change the resonance of LP-Filter1, one would send:

"/ synthesizer / zynaddsubfx / filter / lowpass1 / resonance, f 1998.4f".

Values ​​are transmitted in binary. "1998.4f" represents the binary coding of the floating point number.

advantages

Obviously, OSC has a higher speed than MIDI , which is important for many musicians. The larger data types and the support of floating point numbers ensure that parameter jumps are no longer audible. In addition, OSC can be sent over the network, i.e. Internet, WLAN, etc., which offers the theoretical possibility for Internet jams. WLAN could reduce the cable clutter in the studio. Every modern computer has an integrated network interface, which would make the purchase of an extra device, such as MIDI, unnecessary. Another advantage is that the integration and control of hardware via OSC is much easier than via MIDI SysEx messages.

disadvantage

The main disadvantage of OSC is that although it defines how messages are transmitted, the names of the messages are not standardized. Each manufacturer can choose a different namespace for controlling their synthesizer, for example using different commands for controlling notes than other manufacturers. Due to this lack of definition, incompatibilities are to be expected if they are widespread. In addition, OSC is not backward compatible with the previous MIDI standard. Therefore, a device based solely on OSC would not work easily with older MIDI-based devices. Furthermore, it can be more expensive and cumbersome for hardware manufacturers at the moment to produce a new device with a fully functional network interface than with the simple 5-pin Din-MIDI socket that was previously used for MIDI and is therefore widespread.

Use in open source

OSC is also being used more and more in open source programs. Since there is always a clear separation between the GUI and the actual program due to different thread priorities, OSC is used as a simple and universal protocol for the exchange between GUI and server. This means that everyone has the option of writing a new user interface for the same program, or one that can be used to control several programs at the same time.

Web links

Commons : Open Sound Control  - collection of pictures, videos and audio files