Skip to content


In 2012/2013 I composed two pieces of music for percussion ensemble, Mechanism No. 1 and Mechanism No. 2.

It was never really my intention to write music for humans to play. I was more interested in the possibilities of computer performance - and not just because the music was physically unplayable.

I wrote the Mechanisms in the music notation software Sibelius, which has a mixing panel. Each Mechanism consists of 12 "lines" (where a line is a single stave), and during the composition process I always had the mixer open, listening to different combinations of lines and making sure it sounded perfect from every angle.

I discovered it was possible to create an entirely new piece of music just by soloing, muting and adjusting the volume of the 12 different lines, and this was an experience I wanted listeners to have access to. So I started dreaming of a way to make it happen.

In late 2013, I implemented a tiny prototype of a web-based multitrack audio player and mixer as part of a university assignment. It was very limited, but it served as a starting point for a fully-functioning version, which is what you will find here.


The audio player is implemented using HTML5 audio elements and Javascript. Each track consists of a single stave from the entire piece, exported from Sibelius using the default sound library.

Tracks belonging to a single instrument with more than one stave are labelled with letters (a, b) and tracks belonging to separate instruments of the same kind are labelled with numbers (1, 2).

Unfortunately none of the audio formats available are universally compatible across all browsers, and they each have disadvantages. I've settled on .ogg until a better solution (probably something involving multiple source formats) can be found, but IE and Safari users will have to switch browsers :(


  • Depending on the speed of your internet, you may have to wait a few minutes for all the tracks to load before hitting play. If you don't wait, freshly-loaded tracks might start playing from the beginning without a care for what the other tracks are doing (I suspect this is browser-dependant behaviour). If things go awry, just pause and then play again.

  • If too many tracks are set to a volume too high, you'll probably experience distortion as the overall volume will overwhelm your headphones/speakers. To avoid this problem, all tracks are set to 50% volume by default. I'm sure there's a mathematical formula that describes the ratio needed to prevent distortion, but due to cross-browser discrepancies in volume it probably wouldn't be much use. For now, you'll just have to rely on trial and error when experimenting with different combinations of tracks and volumes.

  • Tracks may get out of sync as you check and uncheck them (for some reason this seems to be more problematic with Mechanism #1). There is no evidence that pausing and playing again helps with this issue. It is a mystery.

  • Finally, remember this is fairly new technology being appropriated for purposes it was never designed for. It may or may not work in your browser. It may or may not cause your browser to freeze and crash. It may or may not eat your CPU. You have been warned. Have fun!