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 under specific conditions, such
as when using the MIDI 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
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 that 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
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 program or 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
"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
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 |
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 |
5. Introductory Paragraph: "Compared to [MIDI] OSC's advantages
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 |