Around 2008, while working at a small community college in Michigan, I came up with a method to generate simple free form music from web site traffic. At the time, the college’s web site did not receive much traffic, so the result of the experiment was a little disappointing and I ended up abandoning the idea. I revisited the idea in 2011 when I learned of SparkFun system administrator Ben LeMasurier’s work on an event broadcast daemon called blode.
Blode is a Node.js daemon that runs on one of SparkFun’s web servers and allows developers to broadcast syslog style events to an arbitrary amount of TCP or WebSocket connected clients. Events can be pushed as JSON from any TCP, UDP, or HTTP connection to the blode listener, which then rebroadcasts the event to all of the connected clients.
blodeJazz is a Node.js blode client that parses the stream of events sent from sparkfun.com’s web servers and turns those events into Open Sound Control messages which correspond to notes in the current key of a jazz chord progression. These OSC messages are then parsed in Max/MSP and sent as MIDI notes to a software synth for playback. Max/MSP also handles forwarding the OSC messages to a monome grid and arc for display, and also handles the arc and grid user interaction.
There were three type of events that blodeJazz listened to while it was running:
- Product View - plays a melody note and triggers a falling animation on the monome 256
- New Order - plays a bass note and causes the third ring on the monome arc to pulse
- Login Attempt - moves the selected chord progression one step forward, plays the new chord, and causes the fourth ring on the monome arc to pulse
The current key, the current progression and the speed of the falling note animation are all controlled by the monome 256 and monome arc.
I launched a KickStarter project to help fund a limited run of blodeJazz 7” translucent red vinyl records. Side A features music generated during a normal business day, and Side B features music generated under the heavy server load of Free Day 2012.