OpenSound Control

From Wikipedia, the free encyclopedia

OpenSoundControl (OSC) is a protocol for communication among computers, sound synthesizers, and other multimedia devices that is optimized for modern networking technology. Bringing the benefits of modern networking technology to the world of electronic musical instruments, OSC's advantages include interoperability, accuracy, flexibility, and enhanced organization and documentation.

Contents

[edit] Motivation

OpenSound Control (OSC) is a communication protocol which allows musical instruments (especially electronic musical instruments such as synthesizers), computers, and other multimedia devices to share music performance data in realtime over a network. OSC is meant to supersede the MIDI standard, which was defined in 1983 and which many consider inadequate for modern multimedia purposes. Because it is a networking protocol, OSC allows musical instruments, controllers, and multimedia devices to communicate via a standard home or studio network (TCP/IP, Ethernet) or via the internet. OSC operates at broadband network speeds, allowing new types of realtime interactions which were not possible because of MIDI "lag", although this is usually attributable to factors other than the inherent speed of MIDI propagation. OSC also gives musicians and developers more flexibility in the kinds of data they can send over the wire, enabling new applications which communicate with each other at a higher level.

OSC can transport over many protocols, but is commonly used with UDP. It was developed by the same team who proposed the unsuccessful ZIPI protocol.

[edit] Features

  • Open-ended, dynamic, URL-style symbolic naming scheme
  • Symbolic and high-resolution numeric argument data
  • Pattern matching language to specify multiple recipients of a single message
  • High resolution time tags
  • "Bundles" of messages whose effects must occur simultaneously
  • Query system to dynamically find out the capabilities of an OSC server and get documentation

There are dozens of implementations of OSC, including real-time sound and media processing environments, web interactivity tools, software synthesizers, a large variety of programming languages, and hardware devices. OSC has achieved wide use in fields including new computer-based interfaces for musical expression, wide-area and local-area networked distributed music systems, inter-process communication, and even from within a single application.

OSC is also used as the heart of the DSSI plugin API, an evolution of the LADSPA API, in order to make the eventual GUI interact with the core of the plugin via messaging the plugin host. LADSPA and DSSI are linux APIs dedicated to audio effects and synths.

[edit] Design

OSC uses UDP ports to make connections between applications. A program chooses any number of ports to send on, and any number of ports to receive messages on, and each message has an associated path, reminiscent of a UNIX filesystem path, or a URL. Messages that can be sent via OSC include:

Many implementations only support character strings and 32 bit floating point numbers.

The advantages of OSC over MIDI are primarily speed and throughput; internet connectivity; datatype resolution; and the comparative ease of specifying a symbolic path, as opposed to specifying all connections as 8 bit numbers. OSC messages arrive as fast as the underlying network stack can transfer them, and can be delayed to take effect at a specific time, whereas MIDI insures synchronicity of messages by transferring them at a specific clock rate.

[edit] Implementations

Some examples of software with OSC implementations:

Some examples of hardware with OSC implementations:

Since September 2007, there has been a proposal for a standardized namespace within OSC called SYN for communication between controllers, synthesizers and hosts.

[edit] References

  • Wright, M., Freed, A., "Open Sound Control: A New Protocol for Communicating with Sound Synthesizers", International Computer Music Conference, Thessaloniki, Greece, 1997.

[edit] External links