Cellular Automata example controlling FM synthesis, Matt Wright

This example demonstrates modulation synthesis controlled by cellular automata.

Here is the code. It requires the FM Violin instrument


My main procedure is ms-stereo and it has 4 parameters:

  1. iterations: How many "bars" will there be in the piece?
  2. bar-length: How many (possible) notes will there be in each "bar"?
  3. on-on: How long (in seconds) between successive notes in a bar?
  4. on-off: How long (in seconds) does each note last?

Here are some settings I like. Each has a link to a wav file example. Since the cellular automata used to make this piece start with random values, you'll get a different (but very similar) version of the "piece" each time you call ms-stereo

;; Fast stacatto 7/8  (sound file)
(ms-stereo 15 7 0.1 0.09)

;; Mushy overlapping (sound file)
(ms-stereo 15 7 0.05 0.2)

;; Much slower (sound file)
(ms-stereo 4 20 0.2 0.2)

The basic idea: The cells of the 1-dimensional cellular automaton correspond to the different beats within a bar. On each cycle we play the current bar, and if a given cell is alive in that cycle we play a note on that beat, otherwise not. We play a low tone at the beginning of every bar, and move it up by 1, 2, or 3 half-steps every bar. The pitches of the notes within each bar are successive harmonics of the low note, and the fm C:M index also increases throughout each bar.