Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
Open Sound Control
(section)
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
== 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 * 32-bit [[IEEE 754-2008|IEEE floating point]] numbers * [[null-terminated string|Null-terminated]] arrays of eight-bit encoded data (C-style [[string (computer science)|string]]s) * arbitrary sized [[Binary large object|blob]] (e.g. audio data, or a video frame) An example message is included in the spec (with null padding bytes represented by ␀): <code>/oscillator/4/frequency␀,f␀␀</code>, Followed by the 4-byte float32 representation of 440.0: 0x43dc0000.<ref>{{Cite web |last=Wright |first=Matt |date=March 29, 2002 |title=Examples Supporting the OpenSoundControl 1.0 Spec |url=https://opensoundcontrol.stanford.edu/spec-1_0-examples.html#argument |access-date=2023-01-01 |website=opensoundcontrol.stanford.edu |edition=}}</ref> Messages may be combined into bundles, which themselves may be combined into bundles, etc. Each bundle contains a timestamp, which determines whether the server should respond immediately or at some point in the future.<ref name=":1" /> 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.<ref name=":1">{{cite web |last=Wright |first=Matt |date=March 26, 2002 |title=The Open Sound Control 1.0 Specification |url=https://opensoundcontrol.stanford.edu/spec-1_0.html |access-date=22 December 2019 |website=opensoundcontrol.org |edition=}}</ref> This human-readability has the disadvantage of being inefficient to transmit and more difficult to parse by embedded firmware, however.<ref name=":0" /> The spec does not define any particular OSC Methods or OSC Containers. All messages are implementation-defined and vary from server to server.
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)