Thursday, March 17, 2011

MIDI vs OSC, with a dash of CV

This post is motivated by a few things:

  • I've heard a lot of discussion on the topic that seems to suggest that there is a difference in capability or effectiveness between these two protocols that a musician should be concerned with.
  • The Eigenharp is capable of generating a lot of data and applying it in various ways (internally, via AU/VSTs, via MIDI) with more arriving
  • I use various soft synths, AUs, hard synths and a a couple of CV-capable devices
  • I do not develop musical hardware or software solutions
So the question is; Are the distinctions between MIDI and OSC material to what matters to me? I think the answer is no.

I'm planning to do some experiments with the stuff I have at hand, but those will focus on MIDI and CV, specifically addressing the best way for me to use the eigenharp to control some Moogerfoggers and a Moog Voyager. 

So this post is separate from that effort.

What does http://opensoundcontrol.org/ say? Look Here: What is the difference between osc and midi?

What does http://www.midi.org/ say? Look Here: A Comparison of MIDI and OSC

What can one make of this:
  • MIDI DIN transport is a red herring. It enabled several generations of hardware to talk to each other (filling a void), some are still limited to that but there are a lot of other transports available today. Nothing in this statement has any bearing on the effectiveness of capability of a data protocol
  • MIDI events are useful simply because they are well known and universally used. OSC can do this but both 'ends' of the exchange need to agree in advance on meaning. A standard event model for music will certainly arise. At that time, this will be a red herring (for new devices) as well.
  • OSC is more extensible, MIDI exclusive messages work (but are perversely opaque). This does not seem to matter to someone simply wanting to play music on devices communicating using either protocol. Further, it will be interesting to see if musicians are motivated to use OSC extensibility once it has a rich event model (any more than they craft sysex messages in MIDI now).
  • MIDI messages are more efficient than OSC with respect to total data transferred per message. Well that probably matters for every device that uses a MIDI DIN plug and is less significant for other transport settings. Also, It is probably only true where the majority of traffic consists of standard events (vs exclusive messages)
  • MIDI is typically lower resolution. IMHO 7bits is enough for some control info and 14 is enough for anything I need. It might seem silly to contemplate crafting a sysex message to carry a 64bit floating point number but one could and it is hard to see much practical difference between the use of such a structure and  something similar crafted in OSC (except to the person doing the crafting, perhaps ;-). (but consider that there are still people coding Fortran with delight hehehe))
Conclusion: 

  1. The brouhaha is mostly sound and thunder signifying nothing.
  2. A nice shiny new protocol is a good thing. Nobody would reasonably use MIDI in the context of things like the widgets of Eigenlabs Stage application (although adding MIDI capability to Stage would be a good thing for bringing together the control of other devices).
  3. Actual users probably do not want any visibility into either protocol (I'm glad Stage works so well but I'm glad there is a GUI for me to use)
  4. MIDI itself does not limit resolution but the MIDI event model's 14bit capability is not widely implemented. 14bits is likely not a practical limitation but an OSC implementation could easily allow more.
Final thoughts: I'll need MIDI for a long time (always) as I have MIDI DIN equipment. OSC will be a valuable addition, particularly in contexts like Stage. Whatever expressiveness I'm capable of can be delivered by either





No comments:

Post a Comment