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.