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. 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. 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. Some examples of software with OSC implementations:
- Bidule
- ChucK
- CSound
- EyesWeb
- IanniX
- Isadora (v.1.1)
- Max/MSP
- Pure Data
- Quartz Composer (as of v3.0 / Mac OS X v10.5)
- Reaktor
- SuperCollider
- Squeak
- Traktor DJ Studio
- VVVV
- Mxwendler
- Crystal Space in the external repository. Has CEL bindings and can be used for feedback on scenes and together with scripted behaviors for entities, allowing dynamism from OSC-enabled apps.
Some examples of hardware with OSC implementations:
- Lemur Input Device
- Monome 40h
- Kiss-Box
Since September 2007, there has been a proposal for a standardized namespace within OSC called SYN for communication between controllers, synthesizers and hosts.
References
- Wright, M., Freed, A., "Open Sound Control: A New Protocol for Communicating with Sound Synthesizers", International Computer Music Conference, Thessaloniki, Greece, 1997.


