Open Sound Control, An Overview
Shannon Simpson
Open Sound Control
(OSC) is a protocol
for communication between computers, sound synthesizers and other multimedia
devices that is optimised for networking technology. In order to
fully comprehend
how advantageous Open Sound Control really can be, let us discuss a
few topics
before hand. MIDI (Musical Instrument Digital Interface) has
traditionally been
the protocol designed for recording and playing back music on
digital synthesizers
and has been supported by many makes of personal computer sound
cards. The protocol
was originally intended to control one keyboard from another, however it was
quickly adopted for the personal computer. Rather than representing musical
sound directly, it transmits information about how music is
produced. The command
set includes note-ons, note offs, key velocity, pitch bend and other methods
of controlling a synthesizer. Open Sound Control (OSC) is a new protocol for
communication among computers, sound synthesizers and other
multimedia devices
that is optimised for modern networking technology.
A protocol is a
standard procedure
for regulating data transmission between computers. A network is a group or
system of electric components and connecting circuitry designed to function
in a specific manner. A computer network that spans a relatively small area
is called a local-area network(LAN). Most LANs are confined to a
single building
or group of buildings. However, one LAN can be connected to other LANs over
any distance via telephone lines and radio waves. A system of LANs connected
in this way is called a wide-area network (WAN). An example of a
LAN is IEEE-1394
which is a very fast external bus standard that supports data transfer rates
of up to 400 Mbps (400 million bits per second). A single 1394 port
can be used
to connect up 63 external devices. In addition to its high speed, 1394 also
supports isochronous data (delivering data at a guaranteed rate). This makes
it ideal for devices that need to transfer high levels of data in real-time,
such as video and audio devices. Products supporting this standard go under
different names, depending on the individual companies. Apple,
which originally
developed the technology, uses the trademarked name Firewire. Another example
of this networking technology is Ethernet. Ethernet was developed
by Xerox Corporation
in cooperation with DEC and Intel in 1976. Ethernet uses a bus (or
star topology)
and supports data transfer rates of 10 Mbps. The Ethernet
specification served
as the basis for the IEEE 802.3 standard, which specifies the
physical and lower
software layers. Ethernet uses the CSMA/CD (Carrier Sense Multiple Access /
Collision Detection) access method to handle simultaneous demands. It is one
of the most widely implemented LAN standards. USB, short for Universal Serial
Bus, is an external bus standard that supports data transfer rates
of 12 Mbps.
In 1996, a few computer manufacturers started including USB support in their
new machines. It wasn't until the release of the best-selling iMac
in 1998 that
USB became widespread. It is expected to completely replace serial
and parallel
ports. A single USB port can be used to connect up to 127 peripheral devices,
such as mice, modems, and keyboards.
The Open Sound Control
was developed
with the goals of better integration of computer, controllers and
sound synthesizers
in mind. The demand for lower costs, increased reliability, greater
user convenience
and more reactive musical control were all factors important in its
development.
Designers began by examining various networking technologies
suitable for carrying
OSC data and discussed features of these technologies that impacted
the design
of their protocol.
OSC is a transport-independent
protocol which means that it is a format for data that can be carried across
a variety of networking technologies. Such networking technologies
include high
speed busses such as medium speed serial LANS like USB, IEEE-1394 (firewire),
Ethernet and Fast Ethernet (as discussed above) and all of which are becoming
widely available as well as affordable. Although a specific transport layer
was not a foremost consideration in OSCıs development, aspects of
these modern
mediums were taken into consideration. For example, Open Sound
Control is transmitted
on systems with a bandwidth in the 10+ megabit/sec range. In comparison, the
bandwidth of MIDI is only 31.25 kilobit/sec, approximately 300 times slower!
In OSC numeric data is encoded in 32-bit or 64-bit quantities and
includes symbolic
addressing and time-tag messages. In general, the OSC format is
much more generous
with its bandwidth for such important features.
The unit of transmission of OSC
is a packet (or datagram) rather then as a constant stream of data travelling
along an established connection. Rather then assuming that the receiver holds
some state from the previous communication, OSC sends information in larger,
self contained chunks that include all pertinent information in one
place. This
leads to a protocol that is as stateless as possible. Any
application that sends
OSC Packets is an OSC Client; any application that receives OSC Packets is an
OSC Server. This packet-based delivery model provides a mechanism
for synchronicity.
Synchronicity means that messages in the same packet (for example, messages
to start each of the notes in a chord) will all begin their effects
at the same
time as each other. OSM assumes that the specific network services
will specify
the length of each of the packets it receives. Any application that sends OSC
Packets is an OSC Client; any application that receives OSC Packets is an OSC
Server. OSM is specifically designed so that any number of clients can send
any OSC messages to any particular devices connected together in a network.
OSM also assumes that the transport layer provides a return address mechanism
that allows the receiving device to send a response back to the device that
sends it a message.
The basic unit of Open
Sound Control
data is a message. This message contains a symbolic address and message name,
and any amount of binary data up to the end of the message which represents
the arguments to the message. The size of an OSC packet is always a multiple
of 4. The OSC packet can contain either a single message or what is called a
³bundle². A bundle is made up of the special string (³#bundle²), a
64 bit fixed
point time tag and any number of messages or bundles, each preceded
by a 4-byte
integer byte count. Bundles have the ability to contain other
bundles. Messages
which are sent in the same bundle are atomic. This means that their effects
should all be implemented at the same time by the receiver. In
multimedia applications,
the same characteristic ensures that values are assigned to different media
which must begin simultaneously.
An OSC server must have access to
a representation of the correct current absolute time. OSC does not provide
any mechanism for clock synchronization but again assumes that the
two interacting
systems will provide a mechanism for synchronisation. Time tags
eliminate jitter
introduced during transport by resynchronizing messages in a bundle
and setting
values for when they should take place. This is extremely useful
for users who
are implementing time lines or in situations where precise rhythm
is necessary.
Time tags are represented by 64 bit fixed point numbers. The first
32 bits encode
the numbers of seconds since January 1, 1900, while the remaining
32 bits specify
fractional bits of second to an amazing precision of 200
picoseconds.
Open Sound Control
employs an open-ended,
dynamic,URL-style symbolic naming scheme fro message addressing. Itıs model
is a hierarchical set of objects that include synthesis voices,
output channels,
filters and a memory manager. Particular objects of a set are accessed using
the same naming scheme of an URL, for example, /voices/drone
b/resonators/3/set-Q.
Using this type of addressing allows different programs to create
its own address
hierarchy so that the same objects will not need the same addresses
from program
to program. Such addressing limitations are experienced in
protocols like MIDI
because it must rely on fixed length bit field. An entire
pattern-matching syntax
has been designed to precisely and efficiently match addresses objects, but
we will not delve into this programming language. For more information refer
to the following websites: http://www.cnmat.cnmat.berkeley.edu/OSC
or
http://cnmat.cnmat.berkeley.edu/ICMC97/papers-html/OpenSoundControl.html.In
preliminary experimentation, the result is that ³with modern
transport technologies
and careful programming, this addressing configuration incurs no significant
performance problems either in network bandwidth utilisation or in
message processing
(Matthew Wright, Adrian Freed)².
Open Sound Control has been very
successful in its preliminary trials of transmission over UDP (User Datagram
Protocol) and Ethernet to control real-time sound synthesis in MAX
on Macintosh
computers. Users enjoy improved precision and find it much easier
to work with
symbolic names of objects rather then complicated mapping of channel numbers,
program change numbers and controller numbers as in MIDI. The
numerous advantages,
efficiency, low cost and reliability of this new protocol make it a potential
replacement for current technology. It will give users more reactive musical
control their convenience as well as expand the every growing
industry of music
technology and the internet.