Last Tuesday Chrome has been updated to version 43, this is the first stable release that has the WebMIDI API built in. Obviously, the WebMIDI API is much faster and more stable than any MIDI plugin that we have seen in the past decade.
Unfortunately, the WebMIDI API is not implemented in Chrome for iOS, nor in any other browser but Chrome. It is not to be expected that other browser vendors will implement the WebMIDI API any time soon.
Fortunately we can use the Jazz plugin in those browsers, and if you use Chris Wilson’s WebMIDIAPIShim you can write your code against the offical WebMIDI API. This means that your project will run both in browsers that have the WebMIDI API implemented, and in browsers that have the Jazz plugin installed.
The WebMIDIAPIShim is called a shim and a polyfill interchangeably. Actually it is both a shim and a polyfill; it is a shim because it intercepts the API calls to the Jazz plugin and converts them to WebMIDI API calls, and it is a polyfill because it adds modern functionality to ‘legacy’ browsers. See also this article on Stackoverflow.
See some examples of what you can do with the WebMIDI API at the heartbeat site.
This is the first step in phasing out the Java applet in favor of the Jazz plugin. Currently not all functionality of the Java version has been ported over, for instance playing back and recording MIDI files is not yet implemented. I am thinking of using jsmidi for recording and jasmid for playing back MIDI files. Also in this version it is not possible to setup multiple connections, or to daisy chain devices. The Jazz plugin requires a separate instance per connection (see comment of Sema below) and I still have to write the wrapper code for that. Please let me know if you have any problems, suggestions or feature requests!
The Jazz plugin is a MIDI plugin that works in all major browsers. Until now, it supported MIDI out only, but today a new version with MIDI in support was released for testing. Currently this beta version is for Windows only. All major browsers are supported. I made an example that shows you how to setup MIDI connections with the Jazz plugin, see: http://abumarkub.net/jazz/
Deprecated, please use Chris Wilson’s WebMIDIAPI Shim I made a NPAPI browser plugin that gives you access to the MIDI devices connected to your computer directly from within your browser. The plugin is built with the
JUCE library. You can download the plugin from Github or directly from here. In the zip you find the plugin file and a simple test page. The comments in main.js explain how to use the plugin and its API. In the README file you’ll find instructions on how to install the plugin in various browsers. Currently on OSX Chrome and Safari are supported, and on Windows Chrome is supported. Continue reading ‘MIDI browser plugin’
Michael Deal made a brilliant music theory learning app for Google Chrome using base64 soundfonts. In fact he is not really using the soundfonts itself, but rendered .ogg files that are loaded as base64 files into the html5
Deprecated, please use Chris Wilson’s WebMIDIAPI Shim I made a test version of the midibridge that allows you to playback midi files. This version uses the File API for loading the midi file and a html5 slider for controlling the song position, so it currently only runs in Chrome: