inventing midi 2.0

This post was transcribed from the imitone kickstarter. Click here to view the original posting.

For some time now, I’ve been hinting at our involvement in MIDI 2.0, and teasing an update about it.  To be honest, though, it’s a bit of a monster.  MIDI is big, and for those who aren’t already familiar with it, can be… mysterious.  I couldn’t hope to do it justice in a regular update.

So, I’ve spent some weeks writing an interactive guide called Discover MIDI.  Like MIDI itself, the guide is… big!  It assumes some familiarity with either music production or programming, and more than anything it’s meant to promote understanding of how MIDI works and where it’s headed.  That’s because, in time, MIDI 2.0 is going to make huge improvements possible for alternative controllers like imitone.

A sample page from our guide.

 There’s an important question to ask here:  Why would a tiny company like ours spend precious time and resources in order to work on a technical standard for three years — attending hundreds of meetings, authoring dozens of proposals, and going so far as to write an online book about it..?

As side projects go, it has been a bit… overboard.  But I might just be able to persuade you this has all been worth it.

What is MIDI?

MIDI is a digital language describing and controlling music as it happens.  It’s made up of messages and rules.  For example, we send a “Note On” message to start a sound.  Every “Note On” must have a matching “Note Off”.  The message “Control Change: Volume” allows a controller (often a knob) to change the loudness of an instrument.

MIDI is a crucial technology for music — without it, things like imitone simply wouldn’t be possible.  It enables thousands of different musical controllers, editors and virtual instruments to understand each other.  It allows each of these to do one job as part of a complete setup.  Needing to do only one job means we can focus on doing that job well.

The makeup of Note On, one of the most common messages in MIDI 2.0 and MIDI 1.0.

The most familiar shape for a MIDI controller is a piano.  See our Piano Keyboard example for a look at the MIDI messages you can send with one of these.  The original MIDI standard tends to think in terms of piano controllers while making some provisions for other types.

imitone is a relatively uncommon type of controller, converting voice to MIDI.  See our imitone example for a look at some of the messages we send as you sing.

What does MIDI 2.0 solve?

MIDI is…  old.  It dates back to 1983, not long after the first personal computers.  Because of its age, flexibility and simplicity, it’s one of the most widely-supported standards in computing.  If you have a laptop, or a tablet, or a cell phone, it probably has MIDI in it.

But, again, MIDI is… old.  MIDI 1.0 was originally designed for very slow connections and processors, and as a result it has many limitations.  These include…

  •  Messages — just six voice messages and a few dozen standard controllers.
  •  Resolution — as few as 127 steps between minimum and maximum.
  •  Channels — a limit of 16; these are used to control different instruments at the same time.
  •  Tuning — it’s difficult to use MIDI 1.0 for non-Western or microtonal scales.

But a bigger problem lurks behind these.  Over the decades, you see, there have been updates to address most of these problems.  The MIDI Manufacturers’ Association has developed new messages to improve resolution and timing, control individual notes, set up custom scales and tuning, and do all sorts of other exciting things…  But at the end of the day, Everything’s Optional in MIDI, and there’s no way for a device to know that these new messages will be understood.

MIDI’s dizzying array of Control Change messages — these don’t always follow the standard.

As a MIDI Manufacturer, I could choose to send these exciting new messages, but they might not work.  If something doesn’t work, and there’s no way to tell our users why it doesn’t work, we create a situation which is confusing and makes our software look broken.  The most practical solution so far has been to add matching stickers to devices that support a collections of features — such as General MIDI or MPE.

To play it safe, controller-makers stick to sending the most common MIDI messages.  As we mentioned before, MIDI is a bit piano-shaped, and the safest messages tend to be the ones a piano keyboard might send.  So, by default, imitone needs act like a piano — which makes it much less expressive.  We have a few settings that make imitone follow your voice more naturally, but we need to add a warning: the messages those use won’t always work!

* this might do absolutely nothing.

There are dozens of MIDI features we would love to use, but each one requires another setting and another warning — and we want to make software that just works.  Some of these messages have been around for decades and still aren’t a safe bet.  This uncertainty limits what imitone can do, and many other controllers are in the same boat.  Controllers avoid sending rare messages, and instruments don’t bother to recognize messages controllers never send.

MIDI is a language with a rich vocabulary, but in practice we’re limited to its simplest words.  And so, for many years, it hasn’t been able to grow.

Why is imitone team involved?

MIDI 1.0 has been holding us back, but that wasn’t always obvious.  It’s like a landscape, well-explored and slow to change…  Back in 2014, its problems were obstacles to work around.  They towered like glaciers; I had no idea these things could be moved.

Attending NAMM in 2016, I happened to explore the deepest, darkest corner of the sprawling convention center where I found the booth of the MIDI Manufacturers Association (MMA), which is responsible for development of MIDI standards.  I met the Association’s now-retired president, Tom White, and pestered him with question after question about how I could use “rare” MIDI messages without creating compatibility problems.

Our conversation continued by E-mail after the convention.  Time and time again, Tom would encourage me to join and help to change MIDI, rather than working around it — eventually, I did.  I would discover a long history of visions for the “next generation” of MIDI, and find myself swept up in a series of controversial new ideas.

Evan celebrates the ratification of MIDI 2.0 with MMA and AMEI members representing Kurzweil, Roland, Yamaha, Bome Software, Artiphon, Native Instruments and other companies.

The key design was presented by Mike Kent in 2017:  MIDI 2.0 would rely on a two-way connection, would be designed for extreme compatibility with MIDI 1.0, and its “killer feature” would be the ability for a controller (like imitone) to learn about and adapt to the receiving instrument.  This new system is called MIDI-CI, and it’s designed to be completely automatic.

Over the three years to follow I learned about the depths and history of MIDI as the Association debated the next evolution of a 40-year standard.  I participated obsessively — advocating for alternative controllers like imitone, non-Western tuning, and futuristic sensor technologies.  I played a role in developing areas of the standard like Pitch, Per-Note Control, Profiles and Property Exchange.

My participation came at a cost:  Aside from the cost of dues and participating in the yearly convention, I’ve invested an excessive amount of time into standards work, week after weak, over most of the last four years.  This has measurably slowed the development of our software.  In particular, it prevented me from doing any serious research and development on imitone’s algorithm until I took a hiatus in 2019.  As of March, I’m participating again and leading the charge on a major project.

Was it worth it?

Honestly?  I can’t be sure.  I don’t think I’ll know for another few years, as music makers decide whether to adopt the standard.  I think it’s going to change everything — but it takes time to move a glacier.

Will the ice break? Photo by Luca Galuzzi, 2005.

It’s strange — even absurd — for a company of our size to be doing this work.  We are the smallest company working on MIDI 2.0, and one of the youngest, but somehow one of the most active.  We are company with no outside investors whose only product is in beta.  My obsessive nature is certainly a factor — MIDI is full of deep, interesting problems to solve.  That might be the only explanation for putting so much time and labor into something so far-flung.

At the same time, our goals have been far-flung since the beginning.  As a voice-music controller, we hope to rise above a decades-long history of failures.  In an earlier post I described a landscape that others made remarkable efforts to cross, before perishing…  Working on MIDI is an opportunity to change the landscape itself.

It has been expensive, stressful, mind-numbing at times…  But I think it might be the key to this promise I’ve been chasing all these years.

We’ll see in time.

— Evan