Cellular Automata and Music
Cellular Automata Music creates music by mapping the results of cellular automata evolution to musical pitch and duration values.

Cellular Automata: Basically a model for interaction/evolution within a finite environment. They are characterized by several fundamental properties:
  • The environment(neighborhood) is divided into cells, which do not change trhough the evolution.
  • The evolution takes place in uniform time steps, and all rules are applied at the same time.
  • Each cell is characterized by a state among a finite set of states.
  • Each cell evolves according to the same rules which depends only on the state of the cell and its neighboring cells.
  • I implemented a version of Conway's Game of Life, which has a simple ruleset:
  • Each cell has two states -- dead or alive(on or off)
  • Every generation, if a cell has less than 2 or more than 3 neighbors, it dies from under or overpopulation.
  • Every generation, if an empty cell has exactly three neighbors, a live cell is born there.
  • Files :
    Perl implementation of Conway's Game of Life
    Simple KeyKit melody function
    Generated Number File of a glider
    Generated Number File from a random set

    How does this turn into music?
    There are several popular ways of mapping the cellular generations onto the elements that make up music, such as pitch, duration, and tempo. In my implementation, I only considered the positions of live elements, and created notes according to their position. The patterns evolving from generation to generation are not as pronounced as they would be if I had differentiated notes by different patterns in a generation, but they are still present, usually manifesting themselves in a similar melody.

    One change I would put in the program is grouping harmonic notes together, since one cell in the game of life is likely to create a child, a note close to it in grouping.


    Resources:
    http://jmge.net/camusic.htm
    http://website.lineone.net/~edandalex/camus.htm
    http://www.comp.leeds.ac.uk/ugadmit/cogsci/alife/conway.htm
    http://www.tu-bs.de/institute/WiR/weimar/ZAscript/node1.html