This weekend, I have been working on MusicToy, a minimalist grid sequencer app. This is a very basic music editor based on an editable grid, with each grid cell corresponding to a specific note or sample being played at a given time. It has drum samples and notes in the minor pentatonic scale. The idea was to make a tool that would encourage musical experimentation with no prior musical knowledge required, so that anyone can use the tool, no training required. The pentatonic scale is easy to compose with, as most sequences of notes in the scale sound musical. It’s been used in children’s songs, pan flute music and Darude’s sandstorm, among other things.

Interesting features include the ability to edit patterns as they are looping and the possibility of sharing links to patterns you create. MusicToy runs 100% on the client-side, and as such, it isn’t possible to save patterns on the server side. However, I discovered that it’s actually possible to generate a unique URL for each pattern by modifying the anchor tag part of the address on the fly to encode the said patterns. This is a wonderful trick I will surely use again in future web apps I make!

The app is implemented using JavaScript/HTML5. It uses the canvas element and the Web Audio API. It should work in recent versions of Chrome and possibly Safari (let me know). Go ahead and try playing with MusicToy or check out some patterns made using it:

Example 1

Example 2

Example 3

Example 4

Example 5

Example 6

Example 7

Example 8

Example 9

Feedback about bugs and possible improvements is welcome :)