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.