Perry Rylance

Personal & Professional blog


MIDI.js is a small library written for parsing and manipulating MIDI files and data.

I wrote this library to work with MIDI quickly in the context of some personal projects. In terms of my development skills, this is a good demonstration of my ability to follow a specification (the MIDI spec in this instance) and a great example of low, byte level code which is something I’ve worked with extensively.

There are other MIDI JS libraries about, however there wasn’t anything really workable at the time I wrote this library, it still has advantages over some of the modern equivalents which appear to be mostly geared towards playback and recording, rather than parsing and manipulation.

My Kalimba app uses this library to parse MIDI files and uses the resulting data to build a visual representation of the song.