Viewing An Unpublished Post

You are currently viewing an unpublished post because you are a site admin or a moderator.

White Paper: Comparison of MIDI and OSC


This paper corrects public misinformation about MIDI and how it compares to OSC.


Products such as Jazz Mutant's "Lemur" and "Dexter", and Euphonix's "MC Control" and "MC Mix" have brought recent attention to technology from CNMAT called "Open Sound Control" ("OSC"). Articles about these products appearing in publications such as Electronic Musician have contained inaccurate comparisons and potentially misleading statements. The document "Open Sound Control - A Flexible Protocol for sensor networking" (Freed, Schmeder, Zbyszynski) provides a chart comparing OSC to MIDI, which understandably attempts to show OSC's advantages over MIDI, but the comparisons are not entirely accurate.

Facts About MIDI:

While OSC can do many things that MIDI is not designed to do, some of the claimed advantages are only true underspecific conditions, such as when using theMIDI DIN transport or using pre-defined messages. The following statements correct specific claims that have been made while the footnotes contain the reference to the claim.

MIDI is a hardware transport independent protocol 1

Both OSC and MIDI are message protocols that are hardware transport independent. There is a transport specification (MIDI DIN) part of the MIDI 1.0 Specification, but that transport it is not required for using the MIDI protocol. It is quite common for MIDI protocol to be carried on transports such as USB, FireWire, and Ethernet.

MIDI is as Fast as OSC 2

When carried on Ethernet, MIDI bits move at the same data rate as OSC bits carried on Ethernet, because the data rate is a factor of the transport, not the protocol. In terms of throughput, MIDI can actually have better throughput than OSC because it takes fewer bytes to make common MIDI messages than it does to make comparable OSC messages.

MIDI supports multiple data formats 3

The majority of data values for defined messages in MIDI are either 7bits (integers 0-127) or 14 bits (integers 0-16383). One defined message (pitch bend) uses signed integer data values (-8192 to +8191). System Exclusive messages can be defined to use other data formats, including strings, floating point, and more, similar to OSC.

MIDI offers pre-defined and product-specific message structures 4

To maximize interoperability, MIDI is primarily a language of pre-defined messages. However, any software or hardware manufacture may obtain a unique ID that enables them to create System Exclusive messages which can have any structure and use any data format. For non-commercial developers, there is a reserved ID, so any person can create "user-defined" messages if desired.

MIDI offers greater interoperability than OSC 5

Interoperability is the primary reason for the existence of MIDI, and is accomplished by having pre-defined messages, a standard transport and a standard file format.

Any two devices with MIDI DIN connectors (of which there are hundreds) will interoperate using MIDI protocol upon connection. In contrast, two devices with Ethernet connectors (of which there are millions) will only interoperate if both happen to support OSC (of which there are only dozens).

And because MIDI's messages are primarily pre-defined, it is very easy to design MIDI product to interoperate, whereas OSC messages are implementation-specific. There are thousands of software and hardware products that support MIDI, compared to dozens that support OSC.

Because there is a standard file format for MIDI data, there are millions of MIDI files available and hundreds of programs and devices that will play them.

MIDI has applications in a wide variety of areas besides music 6

Application areas for MIDI include music, lighting control, show control (and themed events), machine control (audio and video), robotics, and more. MIDI is often used to operate live shows such as the fountain at the Bellagio Hotel, and the Pirate Battle at Treasure Island (both in Las Vegas). Many acts and performers use MIDI-controlled stage lighting. There are also MIDI messages specifically for video performance and machine control.

"Time-tagging" of MIDI events is possible on all the same transports as OSC7

The MIDI protocol and transport do not have time-tagging because they are intended for real-time (immediate) delivery. However, MIDI messages transmitted over Ethernet (like OSC), USB, FireWire or in a PC can be time-stamped by the transport/driver, achieving the exact same result as time-tagged OSC events. Events in Standard MIDI Files are stored in relative time order, and there can be multiple events at the same time point.

MIDI sends clocks at quarter-frame SMPTE accuracy8

The Timing Clock message is sent 24 times per quarter note (BPM dependent) to synchronize clocks on devices such as sequencers and drum machines. For sync applications such as video production, MIDI Time Code provides a clock signal about every 8 milliseconds at 30 frames per second. Accurate timing of individual MIDI events is a factor of the chosen transport: in the case of the MIDI DIN transport, events have about 1ms accuracy, and in the case of Ethernet it depends on which timing specifications are used (MIDI can use the same one as OSC and have the same timing accuracy).

Footnotes: See "

Open Sound Control -- A flexible protocol for sensor networking" (Freed, Schmeder, Zbyszynski, 1)

1. Chart 1, Row 5: "Hardware Transport Independent | OSC:Yes | MIDI:No"

2. Chart 1, Row 13: "Data Rate | OSC:Gigabit | MIDI:31250 bps"

3. Chart 1, Row 7: "Data formats | OSC:Integer, [Floating] Point, Strings, More | MIDI: [integers] 0-255"

4. Chart 1, Row 8: "Message Structure | OSC:User-defined | MIDI:Pre-determined"

5. Introductory Paragraph: "Compared to [MIDI] OSC's advantages include interoperability...."

6. Chart 1, Row 11: "Application Areas | OSC:Music, Video, Robotics and more | MIDI:Music"

7. Chart 1, Row 4: "Time-tagging | OSC:via Bundles | MIDI:No"

8. Chart 1, Row 12: "Clock-sync accuracy... | OSC:picosecond | MIDI:20msec"

Serial, Parallel, and Joystick Ports
Wearable MIDI controllers