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.)

Categorized as csound


  1. Dear Steven,
    I’m just starting to learn Csound after spending a few months with Max MSP, and I just wanted to thank you for the CSD compositions and examples you publish on the blog. While I really like the directness and simplicity of the Csound syntax it feels like a much steeper learning curve for a non-programmer, and its very inspiring to hear what can be done with the software. I haven’t used Blue yet, as I want to properly understand the foundations of Csound first (by working through the Virtual Sound and C Sound books). At what stage in that process do you think a foray into Blue might not be too overpowering for a beginner.

    1. Hi John,

      Good question! I think if you understand the basics of writing Csound SCO score events and get some experience expressing your ideas with SCO, that might be a good time to try out Blue. I think if you’re working with Score events that you’re probably already able to create and design some instruments too. Blue’s timeline and composing with ScoreObjects can make composing with Csound easier with shorter iteration times, IMO. Also, I think Blue’s graphical instrument system, effects, and mixer, can add a lot to the composing experience.

      Best of luck with your work!

Leave a comment

Your email address will not be published. Required fields are marked *