It’s 32 years old. It’s supported by keyboards and electronic wind instruments and lederhosen. And now you can add your browser to the list. MIDI will never die.

Yes, as of more recent beta and stable builds, Google’s Chrome browser has built-in support for hardware MIDI. Plug in a MIDI controller, and you can play – well, this Web Audio MIDI Synthesizer, anyway:

https://webaudiodemos.appspot.com/midi-synth/index.html

Chris Wilso is the author, and describes it thusly:

This application is a analog synthesizer simulation built on the Web Audio API. It is very loosely based on the architecture of a Moog Prodigy synthesizer, although this is a polyphonic synthesizer, and it lacks the oscillator sync and glide effects of the Prodigy. (AKA: this is not intended to be a replication of the Prodigy, so pleased don’t tell me how crappy a reproduction it is! 🙂

This uses my Web MIDI Polyfill to add MIDI support via the Web MIDI API – in fact, I partly wrote this as a test case for the polyfill and the MIDI API itself, so if you have a MIDI keyboard attached, check it out. The polyfill uses Java to access the MIDI device, so if you’re wondering why Java is loading, that’s why. It may take a few seconds for MIDI to become active – the library takes a while to load – but when the ring turns gray (instead of blue), it’s ready. If you have a native implementation of the Web MIDI API in your browser, the polyfill shouldn’t load – at the time of this writing, Chrome Canary and Chrome Stable (33) have the only such implementation. The Web MIDI flag must also be enabled via chrome://flags/#enable-web-midi

So, why would you want such a thing?

Well, Google has their Chrome operating system to worry about, for one. And while Chromebooks haven’t exactly taken the world by storm, they are picking up a tidy selection of sales.

We’ve heard promises of browser-based music for years, of course, and even had some rather viable options (first in Flash, now in Web tools). The promises are old enough that you might rightfully be more than a little dubious about their future. Standalone software performs better, it seems, and the business model that supports it has remained more of an incentive to developers than the unknown world of a browser tab.

That said, I could still foresee someone devising an application we haven’t yet imagined. For instance, if this were more widely deployed, maybe plugging a MIDI keyboard into an app on Facebook isn’t out of the question.

I also still imagine that browser-based music apps could be powerful for education and communication in ways standalone apps might not – and then, you might be willing to settle for slightly less-awesome performance.

In the meantime, this doesn’t matter so much. Developers wanting to toy around with this now can, and there’s code to play with, too. So that’s one of the nice things about the Web: without making any significant investment, our “what if?” scenarios don’t have to be limited to me rambling on and speculating. You can actually try it for yourself.

https://github.com/cwilso/midi-synth

For more reflections on this and Web audio in general, here’s a great opinion piece:

Latest Google Chrome beta gets MIDI support

Previous post

Conductr Controls Traktor and Ableton All in One iPad App

Next post

djay Pro Now Works with CDJs, Adds 320k Spotify Streaming, VJ Tools

  • I have been waiting for this ever since w3C created the web Midi spec. This has been available in chrome canary for quite awhile but it’s nice to see that Google hasn’t forgotten about it!

  • I have been waiting for this ever since w3C created the web Midi spec. This has been available in chrome canary for quite awhile but it’s nice to see that Google hasn’t forgotten about it!

  • mercury

    Actually I would leave to see soundcloud or other streaming services send out MIDI timeclock with tracks – it would be a nice way to basically send sync to your synths and play in realtime on top of other music, just for fun.

  • mercury

    Actually I would leave to see soundcloud or other streaming services send out MIDI timeclock with tracks – it would be a nice way to basically send sync to your synths and play in realtime on top of other music, just for fun.

  • Will

    A browser probably has too much overhead to make something on the scale of Ableton really effective but for simpler tools like drum machines or sample triggerators or whatever, the ease of programming afforded by languages like Javascript and ease of deployment (cross-platform!) afforded by the web is the hidden hope-for story here.

  • Will

    A browser probably has too much overhead to make something on the scale of Ableton really effective but for simpler tools like drum machines or sample triggerators or whatever, the ease of programming afforded by languages like Javascript and ease of deployment (cross-platform!) afforded by the web is the hidden hope-for story here.

  • This seems like a toy at first, but I can see it having really cool pedagogical uses. Imagine an interactive website that showed you different chords or rhythmic ideas and then provided a javascript digital instrument for you to play along with them. I remember learning a lot about music from the “Miracle Piano Teaching System” which I had on floppy disks. It’d be fun to update that idea for electronic music particularly.

  • This seems like a toy at first, but I can see it having really cool pedagogical uses. Imagine an interactive website that showed you different chords or rhythmic ideas and then provided a javascript digital instrument for you to play along with them. I remember learning a lot about music from the “Miracle Piano Teaching System” which I had on floppy disks. It’d be fun to update that idea for electronic music particularly.

  • PaulDavisTheFirst

    The browser is effectively a new platform (with the tweak that you might then be able to use the tool, whatever it is, “everywhere”).

    But here’s a quote I just came across:

    “We should contemplate how very, very far behind the web platform is in
    making it delightful to build the sorts of things that are work-a-day in
    native environments.” Alex Russell

  • PaulDavisTheFirst

    The browser is effectively a new platform (with the tweak that you might then be able to use the tool, whatever it is, “everywhere”).

    But here’s a quote I just came across:

    “We should contemplate how very, very far behind the web platform is in
    making it delightful to build the sorts of things that are work-a-day in
    native environments.” Alex Russell

  • PaulDavisTheFirst

    And while Chromebooks haven’t exactly taken the world by storm, they are picking up a tidy selection of sales.

    Just wanted to mention that Ardour 4.0 will run on a Chrome book 🙂

  • PaulDavisTheFirst

    And while Chromebooks haven’t exactly taken the world by storm, they are picking up a tidy selection of sales.

    Just wanted to mention that Ardour 4.0 will run on a Chrome book 🙂

  • Robin Renwick

    and for those of you especially interested/involved in WebAudio…

    http://webaudio.gatech.edu

  • Robin Renwick

    and for those of you especially interested/involved in WebAudio…

    http://webaudio.gatech.edu

  • This is awesome 🙂

  • This is awesome 🙂

  • Makes perfect sense for editing and upgrade tools. When I was reviewing the Livid kit I did a firmware upgrade and some layout edits via a MIDI browser plug-in. As a dev you get all the familiar web furniture, assets and Javascript frameworks to play with, and there’s zero distribution cost.

  • Makes perfect sense for editing and upgrade tools. When I was reviewing the Livid kit I did a firmware upgrade and some layout edits via a MIDI browser plug-in. As a dev you get all the familiar web furniture, assets and Javascript frameworks to play with, and there’s zero distribution cost.

  • Foosnark

    After trying this, my MIDI keyboard was disabled as an input device for everything else and wouldn’t let me reenable it until I rebooted my computer.

    • the_cody

      Chrome runs in the background, you might need to kill the background version of Chrome as well? Crappy workaround if it works, but it might.

  • Foosnark

    After trying this, my MIDI keyboard was disabled as an input device for everything else and wouldn’t let me reenable it until I rebooted my computer.

    • the_cody

      Chrome runs in the background, you might need to kill the background version of Chrome as well? Crappy workaround if it works, but it might.

  • I made this when I first heard of the Web MIDI API: http://www.kreativekorp.com/app/mymidikeyboard/

    And for anyone who remembers HyperCard: http://www.kreativekorp.com/lib/jsPlayCommand/

    🙂

  • I made this when I first heard of the Web MIDI API: http://www.kreativekorp.com/app/mymidikeyboard/

    And for anyone who remembers HyperCard: http://www.kreativekorp.com/lib/jsPlayCommand/

    🙂