A few years ago 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 last year 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 256 and arc 4 for display, and also handles the arc 4 and 256 user interaction.
There are three type of events that blodeJazz currently listens to:
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 started a KickStarter project to help fund a limited run of blodeJazz 7" translucent red vinyl records. Side A will feature music generated during a normal business day, and Side B will feature music generated under the heavy server load of Free Day 2012. Watch the video above to see examples of the music that will featured on the record.