Content deleted Content added
→Design: Mention bundles, improve ref formatting |
m →Applications: HTTP to HTTPS for SourceForge |
||
(30 intermediate revisions by 17 users not shown) | |||
Line 1:
{{Short description|Protocol for multimedia devices}}
[[File:IPad_TouchOSC_&_microKontrol.jpg | thumb | right | iPad running [[TouchOSC]]]]
'''Open Sound Control''' ('''OSC''') is a [[Communications protocol|protocol]] for networking [[Synthesizer|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.<ref name="osc org">{{cite web |title=Introduction to OSC |url=http://opensoundcontrol.org/spec-1_0.html#introduction |website=opensoundcontrol.org |date=7 April 2021 |access-date=11 September 2021}}</ref> Its disadvantages include inefficient [[Computer programming|coding of information]], increased load on [[Embedded system|embedded processors]],<ref name=":0">{{Cite web |last=Fraietta |first=Angelo |date=2008 |title=Open Sound Control: Constraints and Limitations |
== Motivation ==
OSC is a [[content format]] developed at [[CNMAT]] by Adrian Freed and Matt Wright comparable to [[XML]], [[WDDX]], or [[JSON]].<ref>{{cite web |title=OpenSoundControl {{!}} CNMAT |url=http://cnmat.berkeley.edu/opensoundcontrol |website=cnmat.berkeley.edu |access-date=22 December 2019}}</ref> It was originally intended for sharing music performance data ([[Gesture|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 [[Serial Line Internet Protocol|SLIP]] protocol.{{Citation needed|date=December 2022}}
== Features ==
Line 16:
== 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.
Line 22:
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.<ref>{{cite web |title=OSW Manual OpenSound Control (OSC) |url=
OSC is the heart of the [[Disposable Soft Synth Interface|DSSI]] plugin API, an evolution of the LADSPA API, in order to make the eventual [[Graphical user interface|GUI]] interact with the core of the plugin via messaging the plugin host. LADSPA and DSSI are APIs dedicated to audio effects and synthesizers.
Line 35:
* [[Ardour (audio processor)|Ardour]]
* [[Aurora dBTechnologies Network]]
* [[
* [[ChucK]]
* [[CasparCG (open source video graphics engine)]]
Line 52:
* [[LiVES]]
* [[Logic Pro]]
* [[LoopToGo]]
* [[MadMapper]]
* [[Magic Music Visuals]]
* [[Max/MSP]]
Line 68 ⟶ 70:
* [[REAPER]]
* [[Renoise]]
* [[Resolume Arena/Avenue]]
* [[ShowForge]]
* [[Sonic Pi]]
* [[
* [[Squeak]]
* [[SuperCollider]]
* [[Surge XT]]
* [[TouchDesigner]]
* [[TouchOSC]]
* [[Unreal Engine]]
* [[VRChat]]
* [[Ventuz]]
* [[X32ReaperAutoMate]]
* [[X32XLiveAutoMate]]
* [[WingReaperAutoMate]]
* [[WingWLiveAutoMate]]
}}
Line 88 ⟶ 96:
* [[Audiocubes]]
* [[ETCConnect|ETC]] EOS Consoles
* [[MA Lightning]]
* [[DiGiCo]] SD Mixing Consoles
* [[Flic (company)|Flic]] Flic smart controller
* [[Kyma (sound design language)|Kyma]]
* [[Lemur (input device)|Lemur]]
Line 100 ⟶ 110:
== Design ==
OSC messages consist of an address pattern (such as <code>/oscillator/4/frequency</code>), a type tag string (such as <code>,fi</code> for a [[float32]] argument followed by an [[int32]] argument), and the arguments themselves (which may include a time tag).<ref name=":1" /> Address patterns form a [[Namespace|hierarchical name space]], reminiscent of a [[Unix]] [[filesystem]] path, or a [[Uniform Resource Locator|URL]], and refer to "[[Method (computer programming)|Methods]]" inside the server, which are invoked with the attached [[Parameter (computer programming)|arguments]]. Type tag strings are a compact string representation of the argument types. Arguments are represented in [[Binary number|binary]] form with four-[[byte]] alignment. The core types supported are
* 32-bit [[two's complement]] signed integers
Line 122 ⟶ 132:
* 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.
* Patrick-Gilles Maillot, "UNOFFICIAL X32/M32 OSC REMOTE PROTOCOL", https://drive.google.com/file/d/
* Patrick-Gilles Maillot, "
== External links ==
Line 133 ⟶ 143:
* [https://sites.google.com/site/patrickmaillot/x32 patrickmaillot/x32], a collection of OSC based utilities for the X32/M32 family of digital mixing consoles
[[Category:Audio communications protocols]]
[[Category:Electronic musical instruments]]
[[Category:Digital media]]
|