If you have any interest in cellular automata, please check this out. . .
This started out as an attempt to hear some of the patterns that I was looking at in pictures of 1D cellular automata, or perhaps just to see what it would be like coding them in PD. Basically, an array (of variable size) of 1s or 0s updates according to the CA rules at the top (I followed Wolfram's convention for naming the rules.) There is another array (of up to 25 cells) which I call the 'audible window', which is a subset of the main array and is mapped to midi notes; the audible window can be moved around within the main array.
I started mostly just as a proof of concept thing, but I realized a few (admittedly self-evident) details pretty quickly:
- that deterministically random rules sound well . . . random
- that most rules involving potentially interesting phenomena like nesting and complexity are interesting primarily in a global, bird's eye view sense; within my local-only audible window approach there is not so much intersting action (there are exceptions, like rule 150, where the nesting shows itself along the centre of the array)
- that using my approach, localized phenomena will be more of more musical use (at least from my limited aesthetic point of view) - and that there really is some potentially fruitful musical material to be found in these local structures
So, I played around. Many rules will display interesting periodic patterns if a small toroidal array is used (e.g., given any random initial condition, rule 110 always seems to fall into a period of 7 with an 11 cell toroidal array).
The most musically interesting discovery for me was with rule 73/109. Given (nearly) any random initial condition, in an array of any size, it will very quickly settle into a multitude of independent localized structures, each with its own period. The most common periods are 2 or 3 steps, but longer periods are quite common, and really long ones not at all rare. By moving the audible window around within the main array you can straddle multiple structures with different periods creating some real interesting polymeter. By moving the window one step at a time, the resultant rhythms feel like they are developing. Mapping the midi notes to percussion sounds also creates some fascinating beats. (bang 'reset_and_start' in the 'random_up' subpatch for a demo - it will gradually shift the audible window up thru a randomly seeded array)
http://www.pdpatchrepo.info/hurleur/1D_cellular_automata_player.pd