Open Sound Control: Difference between revisions
No edit summary |
|||
Line 37: | Line 37: | ||
* [[Traktor DJ Studio]] |
* [[Traktor DJ Studio]] |
||
* [[VVVV]] |
* [[VVVV]] |
||
* [[Mocolo]] |
|||
* [[Mxwendler]] |
* [[Mxwendler]] |
||
* [[Crystal Space]] in the external repository. Has [[Crystal Entity Layer|CEL]] bindings and can be used for feedback on scenes and together with scripted behaviors for entities, allowing dynamism from OSC-enabled apps. |
* [[Crystal Space]] in the external repository. Has [[Crystal Entity Layer|CEL]] bindings and can be used for feedback on scenes and together with scripted behaviors for entities, allowing dynamism from OSC-enabled apps. |
Revision as of 10:24, 25 March 2008
This article needs to be divided into sections. |
This article needs additional citations for verification. (January 2008) |
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.
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.
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.
Implementations
Some examples of software with OSC implementations:
- Bidule
- ChucK
- CSound
- EyesWeb
- IanniX
- Isadora (v.1.1)
- Lily
- Max/MSP
- Pure Data
- Quartz Composer (as of v3.0 / Mac OS X v10.5)
- Reaktor
- SuperCollider
- Squeak
- Traktor DJ Studio
- VVVV
- Mocolo
- 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.
- Eyecon
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.