Open Sound Control
Open Sound Control (OSC) is a protocol for networking sound synthesizers, computers, and other multimedia devices for purposes such as musical performance or show control. OSC's advantages include interoperability, accuracy, flexibility and enhanced organization and documentation. The first specification was released in March 2002.

Motivation 
OSC is a content format developed at CNMAT by Adrian Freed and Matt Wright comparable to XML, WDDX, or JSON. It was originally intended for sharing music performance data (gestures, parameters and note sequences) between musical instruments (especially electronic musical instruments such as synthesizers), computers, and other multimedia devices. OSC is sometimes used as an alternative to the 1983 MIDI standard, when higher resolution and a richer parameter space is desired. OSC messages are transported across the internet and within local subnets using UDP/IP and Ethernet. OSC messages between gestural controllers are usually transmitted over serial endpoints of USB wrapped in the SLIP protocol.

Features 
OSC's main features, compared to MIDI, include:
 Open-ended, dynamic, URI-style symbolic naming scheme
 Symbolic and high-resolution numeric data
 Pattern matching language to specify multiple recipients of a single message
 High resolution time tags
 "Bundles" of messages whose effects must occur simultaneously

Applications 
There are dozens of OSC applications, including real-time sound and media processing environments, web interactivity tools, software synthesizers, programming languages and hardware devices. OSC has achieved wide use in fields including musical expression, robotics, video performance interfaces, distributed music systems and inter-process communication.

The TUIO community standard for tangible interfaces such as multitouch is built on top of OSC. Similarly the GDIF system for representing gestures integrates OSC.

OSC is used extensively in experimental musical controllers, and has been built into several open source and commercial products.

The Open Sound World (OSW) music programming language is designed around OSC messaging.

OSC is 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 APIs dedicated to audio effects and synthesizers.

In 2007, a standardized namespace within OSC called SYN, for communication between controllers, synthesizers and hosts, was proposed,

Notable software with OSC implementations include:

Notable hardware with OSC implementations include:

Design 
OSC messages consist of an address pattern, a type tag string, arguments and an optional time tag. Address patterns form a hierarchical name space, reminiscent of a Unix filesystem path, or a URL. Type tag strings are a compact string representation of the argument types. Arguments are represented in binary form with four-byte alignment. The core types supported are

 32-bit two's complement signed integers
 32-bit IEEE floating point numbers
 Null-terminated arrays of eight-bit encoded data (C-style strings)
 arbitrary sized blob (e.g. audio data, or a video frame)

Applications commonly employ extensions to this core set. More recently some of these extensions such as a compact Boolean type  were integrated into the required core types of OSC 1.1.

The advantages of OSC over MIDI are primarily internet connectivity; data type resolution; and the comparative ease of specifying a symbolic path, as opposed to specifying all connections as seven-bit numbers with seven-bit or fourteen-bit data types.

References 

 Schmeder, A., Freed, A., and Wessel, D., "Best practices for Open Sound Control", Linux Audio Conference, Utrecht, The Netherlands, 2010.
 Freed, A., Schmeder, A., "Features and Future of Open Sound Control version 1.1 for NIME", NIME Conference 2009.
 Wright, M., Freed, A., "Open Sound Control: A New Protocol for Communicating with Sound Synthesizers", International Computer Music Conference, Thessaloniki, Greece, 1997.

External links 
 
 Introduction to OSC at LinuxJournal
 SYN, a standardized namespace within OSC

Electronic musical instruments
Digital media
Sound production technology
Music notation file formats