Cellular Automata Streams

Download CSD Project Here

Implementation of 1-dimensional (Elementary) Cellular Automata as a
stream using feedback and circular buffer delay line. Stream
generates 1 (Live) and 0 (Dead) values, according to initial state
and rule.

Initial state may be any length array. Different array lengths
affects the rate of mutation, comparable to classical cellular
automata implementations that use a fixed array as value between CA
processing steps.

Rule numbers are implemented using Wolfram-style encoding where
number is interpreted as bits. This allows user to use Wolfram rule
numbers. For example, Rule 30 gives bit value of 00011110.

For this project, the CA stream values are used to turn and off a
held note of a specific frequency and amplitude. Actions occur only
when the stream values has transitioned from 0 to 1 or vice versa. The project runs indefinitely but was capped off at ten minutes here.

Using a feedback+delay-based approach could be interesting to allow for user input. The ca_stream user-defined opcode here could be modified to take in input and use bitwise-or with a generated value before writing it back into the stream. This could allow users to “play” the stream, and could make the Class 1 rules that evolve to 0’s be interesting for generating a limited amount of output in time to the user input. (I am curious to know if this could be useful, and will plan to investigate shortly by implementing an interactive web application.)

Shimmer Reverb

Download Csound CSD Project here

Exploration of Shimmer Reverb effect, inspired by Brian Eno’s feedback reverb with pitch-shifter effect. This example uses the following Csound opcodes:


Resonant Impulses 2

Download Csound CSD Project here

Further explorations into resonant impulses.  This version is modified in two primary ways:

  1. Additional band-pass filters used to add resonance to the impulses
  2. Gesture generator parameters further randomized to get larger range of textures to listen to.

The zdf_2pole bandpass filter is once again used here, but using mode=3 (Unity-Gain band pass) is used for the second two filters in the series.

Resonant Impulses

Download Csound CSD project file

A study of class synthesis technique of using an impulse generator with resonant filter.  Implemented using Csound with:

  1. gbuzz opcode for bandlimited impulses
  2. zdf_2pole for band-pass filter with high Q setting; filter center frequency swept with exponential envelope
  3. Additional declicking and exponential envelope use to shape gesture
  4. reverbsc opcode used as always-on reverb effect
  5. Temporal Recursion Player instrument used to randomly initiate gesture playback with various, slightly randomized parameters

Special thanks to Eugenio Giordani and Alessandro Petrolati for discussion of VCS3 implementation in this paper, which inspired me to use gbuzz as the impulse generator for this example.