MIDI.js - Sequencing in Javascript.

0:00 -0:00
Loading API...

What’s all this hubub?

MIDI.js ties together, and builds upon frameworks that bring MIDI to the browser. Combine it with jasmid to create a web-radio MIDI stream similar to this demo, or with Three.js, Sparks.js, or GLSL to create Audio/visual experiments. Piano/guitar simulations, Drum machines, and all kinds of certified funkitude is within your grasps!

Google Chrome, Firefox, Opera, or Safari is recommended for best listening experience. Internet Explorer sounds a bit more like the piano has been drinking, arrr.

Carpe beerum, and commandeer yer own copy!

Basic Examples

  1. Basic (play note)
  2. MIDI Player
  3. Whitney Music Box


  1. Color Piano by Michael Deal mudcube
  2. 3D Piano Player w/ Three.js by Borja Morales @reality3d
  3. Simon Says by Daniel Christopher uxmonk
  4. Brite Lite by Daniel Christopher uxmonk
  5. Euphony 3D Piano by Xueqiao Xu @qiao
  6. VexFlow by Mohit Muthanna @11111110b
  7. Spiral Keyboard by Patrick Snels
  8. Whitney Music Box by KrazyDad
  9. Ragamroll by Mani Balasubramanian

Many thanks to the authors of these libraries!

  1. <audio>:  HTML5 specs
  2. WebAudio API:  W3C proposal by Google
  3. WebAudio API Shim
  4. WebMIDI API
  5. WebMIDI API Shim
  6. SoundManager2 by Scott Schiller (Flash fallback)
  7. jasmid:  MIDI file byte-code reader, and translats into a Javascript array.
  8. Base64binary.js:  Converts base64 soundfonts to binary for Web Audio API.