javascript midi

Jazz plugin replaces Java applet

Deprecated, please use Chris Wilson’s WebMIDIAPI Shim

The MIDIBridge code has been rewritten as a wrapper for the Jazz plugin by Sema. It is called JazzMIDIBridge now and you can find the code and documentation on Github:

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!

9 replies on “Jazz plugin replaces Java applet”

Actually, you can setup multiple connections by creating several instances of the plugin. (Will require some book-keeping in Javascript though…)

Ok, thanks for letting me know! Multiple connections is one of the items on my wishlist 😉

I’ve played a bit with dynamic creation:

function create_plugin(where){
var obj=document.createElement(‘object’);
if(!obj.isJazz) obj.type=”audio/x-jazz”;
if(obj.isJazz) return obj;
return null;

Dynamically creating another instance of the plugin is not the issue; the JazzMIDIBridge already creates the instance dynamically.

The challenge is to find an elegant way do the Javascript administration and to enable daisy chaining devices without too many overhead.

This is very nice wrapper. Can you tell me how to send a Pitch Bend Event? Having trouble figuring this out.


Like so:
var msg = MIDIAccess.createMIDIMessage(JMB.PITCH_BEND,data1,data2,channel);

The amount of pitchbend is stored in data2.

I made an example for you, see:

The example makes use of the html5 slider, unfortunately Firefox still hasn’t implemented the slider, so you have to use Opera, Chrome, Safari or IE10.

Code on GitHub.

That is true, unfortunately. I believe Sema is working on it [link]

After the summer I have planned to continue my own native browser plugin; it will be open source and there will be a Linux version.