For awhile now, I've been very excited about _why's Bloopsaphone. Written as part of the coming Real Soon Now, new Hackety Hack, Bloopsaphone is a Ruby library for making 8-bit music and sound effects. _why intends it to be used by the kids to enhance their video games and what not. The code's been available on the Github for a while now and a few weeks back, I finally got a chance to install it, build it, and start playing around.
Bloopsaphone is built on top of Portaudio which is a cross-platform library for doing sound stuff. It provides a nice DSL for configuring sounds and giving them notes to play. The instructions for installing and building it are available in the Bloopsaphone README.
That same document also explains the design of the notation system, which works by consuming a series of letters and numbers separated by spaces. The numbers represent note values (8 = an eighth note, 4 = a quarter note, etc.) and the letters represent pitches in the tempered scale (A, B, C, etc). If you have a number next to a pitch that means play that pitch for the given time; if you have a number by itself that means rest for the given time.
The README has a couple of short examples (and the repo has a few other more extended ones), but no actual mp3s. Unless you go to the effort of actually installing Portaudio and building Bloopsaphone, you can't hear what it sounds like. So, I thought I'd record some of _why's examples and some of my early experiments and link them up here for interested parties to hear.
Our first selection is The Simpson's Theme as transcribed for Bloopsaphone in the README. I've included a gist of the code and an mp3 of the output below that:
The other code snippet in the README itself is the: Bloopsaphone Theme Song, which I think would make an awfully nice (though potentially homicide inducing) ringtone.
Digging around a little bit more in the repo I found a series of sound definition files, which I've transcribed to Bloopsaphone sounds and concatenated into the following mp3: Sound Effects Sampler. In the order they appear here, these are: jump, dart, error, ice, pogo, and stun. You can see how this sucker would be great for making sound effects for old-school games.
The last hidden treasure lurking in the repo turns out to be an entire piece of music that _why seems to have commissioned to demonstrate Bloopsaphone's capabilities: Cheeky Drat by freQvibez (I'm not sure if the crunchiness that happens towards the end of that mp3 is how the song is supposed to go or an artifact of it rendering badly on my machine; I think it's the latter).
The last couple of mp3s I've got for you are the results of my first experiments with Bloopsaphone. The first was inspired by a tweet of Andy's mentioning his search for chiptune jazz covers. It turns out that tweet was part of the run-up to Andy's awesome project, Kind of Bloop to commission chiptune covers of the the entirety of Miles Davis's masterpiece. I spent an hour or so transcribing the first 8-ish bars of So What: So What Intro in Bloops, which was a great way to really learn the Bloopsaphone notation system.
Since then, I've been working some on a piece of my own. Even though I've never made music in anything like this style, I've always greatly admired the insanely detailed non-repeating rhythmic programming in Aphex Twin's work. I thought Bloopsaphone would be a great medium to explore that style. I'm calling the very early results of that effort: longs.