For a while now I’ve known i wanted to be able to use data to generate interesting music procedurally, or algorithmically. Although not a new idea, i like the possibility that the control for the algorithms could come from an image- or some other realtime data, actually – and that the music would be related somehow to the data but would be a piece in it’s own right.
Although there are lots of ways to think about generative music – formal grammars, Markov chains, state machines, and so on – i’ve not really been sure how my software would work.
It doesn’t take a genius to associate generative music with Brian Eno – aside from his various ambient albums, he’s known for various generative programs such as Koan and Bloom, and for developing some generative music for the generative computer game ‘Spore’. His most recent app, called Scape and developed by Eno and Peter Chilvers, adopts an approach whereby little graphical modules are dropped onto the screen, each one having a simple set of generative rules. The interesting part is that each module kind of knows what the other modules are doing, so they interact to produce more complex, interesting music. That got me thinking about my own project, and how i could modularise the generative ‘engine’, creating simple building blocks that could work together. For example, there could be a module who’s job would just be to play a long note every 1 – 3 bars, with rules to govern how often notes are played, what the notes are, what the tonal quality of the sound is and so on. Since the whole thing will be governed by incoming data, there will be ‘global’ parameters that all the modules can use – but equally, different modules could be made aware of each other and interact somehow.
A basic sketch of the system at the moment looks like this:
So all the modules are linked, and there’s a global arrangement generator and key / chord progression generator, as well as a module for a range of different sounds, each one with it’s own set of rules for making stuff happen.
So far i’ve only got the pad generator… but i like the idea that each module could have a little personality too. Maybe the pad generator’s a bit lazy and laid back, and the lead melody generator is highly strung and liable to have a strop if it doesn’t get it’s own way!