Playing song: "Length Binding Conduct"

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

JoaCHIP's Procedural Music Demo (beta)

This demo uses MIDI.js as a framework that bring MIDI to the browser. The midi data is generated by some fairly complex algorithms. The page will proceed to the next song automatically, or you can click here to generate a new song.

This may sound a bit simplistic. If you download the generated MIDI files yourself and render them using some more serious music gear, you can get a far more impressive result. Go to this page and click "Random Midi4" you can get actual .mid files.

Thanks to

  • <audio>:  HTML5 specs
  • WebAudio API:  W3C proposal by Google
  • WebAudio API Shim
  • WebMIDI API
  • WebMIDI API Shim
  • SoundManager2 by Scott Schiller (Flash fallback)
  • jasmid:  MIDI file byte-code reader, and translates into a javascript array.
  • Base64binary.js:  Converts base64 soundfonts to binary for Web Audio API.