in development

freebeard: algorithmic music for android

My second Android app has hit the Play Store. It’s called Freebeard, and it makes music.

freebeard-1

That’s it, pretty much. The whole UI is just a notification. The application runs inside a service. Here’s a sample of the output:

It grew out of a simple experiement. I yanked the synthesizer module out of Quencher, and yoked it to a Markov chain initialized with random data. The result was interesting, though nothing I’d listen to for long. If the chain contained a few nodes, it would repeat the same note patterns endlessly. Adding more nodes created more variations, but also increased the randomness of the output. A melody that wanders everywhere and goes nowhere is just as boring as an endlessly repeated note. What I needed was some way of bringing long-term patterns into the music to be modulated and mutated over time.

Chains with few nodes create recognizable patterns. What if I built an array of them, and switched from one to the next as the music progressed? That works, but it’s still kind of boring, because once you play through the entire array, you have nowhere to go but back to the beginning. Moving through the chains in random order mixes things up, but it’s the wrong kind of mixing up. It’s patternless and unrepeatable.

Obvious solution? Drive the array with another little Markov chain. A chain of chains, if you like. That way, you have second-order effects, a larger pattern driving the smaller ones. I create all the improvisational lines, rhythm patterns, and chord changes this way. It’s simple, but there’s a whole lot of stuff that comes out of that simplicity.

  1. The Freebeard app is certainly a fave of mine. The boredom problem has been prevented. I can play this app a long time like happy sonic wallpaper. Great when I want to get to some pleasant sound with minimum fuss. It seems endlessly varied and interesting.

Comments are closed.