back to list

Cellular Automata

🔗Christopher Bailey <cb202@columbia.edu>

1/23/2001 12:58:01 PM

>
> Sarn asked about cellular activity. . .
>

I made a few MAX patches a while back---if you're a MAX/MSP user, I can
send them to you. They were dealing with 1-dimensional CAs.

My idea was this:

first, construct an Ur-scale from the harmonic-series, like:

1/1
1/1 3/2
1/1 5/4 3/2 7/4
1/1 9/8 5/4 11/8 3/2 13/8 7/4 15/8
1/1 17/16 9/8 19/16 5/4 21/16 11/8 23/16 3/2 13/8 7/4 15/8

etc.----in other words "collecting" tones from the harmonic-series gamut.
(Thus there is no 4/3).

(I used this as an ur-scale just for the heck of it, because I hadn't
experimented with JI before, and figured it was about time, but you could
use anything with a large number of tones per octave (or per any other
periodicity) The idea is to have a large number of tones from which you
can extract smaller, 5-8 notes or so subsets---scales that have a modal
character.)

Then, you make a cellular-automata grid something like:

111011101111

Notice it has 12 positions, the number of notes in the ur-scale. Each
position corresponds to a note of the ur-scale.

Then, you make up your CA rule system and let the thing go:
(those of you who don't know what I'm talking about, see
http://www.student.nada.kth.se/~d95-aeh/lifeeng.html
Very nice explanation and great, clear Java graphics
at the bottom, there's a great 1 dimensional CA. No time at all to figure
out the basics CA theory once you've seen it.)

and you get something like:

110110110100
101101101011
111011101101
011011110101
101110011110

or whatever (I was just made that up for the purpose of this e-mail, so
don't look for a pattern. But all CA's look something like the above.)

Anyway, the point is that my idea was that, each "line" of this CA
represents a certain amount of "time" to "improvise" in.
For that period of time, one checks the grid: a "1" means that scale-tone
is "on" and you can play with it, a "0" means it's off, and you leave it
alone. Or the other way around.
Then, after a while, you go onto the next line, and the scale-subset of
the "Ur-scale" changes, and you have a new set of tones to jam on.

Get it?

Hence, the above example would give the following subsets, ("0" means a
note is "on" in this case:)

improv on:
19/16 23/16
for while, then on:
9/8 21/16 3/2 7/4 15/8
for a while, then on:
17/16 5/4 23/16 13/8
etc.
19/16 23/16 7/4

etc.

It's a simple idea admittedly, and probably one can do much more
interesting things with 2 or more dimensional CAs. But I thought it was
a nice way of generating quasi-random scale combinations.

In the actual patches I was playing with, the "UR-scale" consisted of a
24-note octave, repeated from a low C3 to a high G7, or something (that
range because I was going to write a piece for bass flute, viola and
violin), and I found a rule-pattern for the CA that worked particularly
nicely---give me nice, interesting subset-scales.

Unfortuantely, they were too nice----too rich, almost, and I wasn't sure
how to go about composing/improvising with them. Now that I've been on
the list awhile, I'm starting to see how to think of ways to combine JI
tones to make interesting harmonies/melodies.

Hope this made some small degree of sense.

CB

***From: Christopher Bailey******************

212-663-2515
http://music.columbia.edu/~chris

**********************************************

🔗Robert Walker <robert_walker@rcwalker.freeserve.co.uk>

1/24/2001 4:02:35 PM

Hi Christopher,

> Anyway, the point is that my idea was that, each "line" of this CA
> represents a certain amount of "time" to "improvise" in.
> For that period of time, one checks the grid: a "1" means that scale-tone
> is "on" and you can play with it, a "0" means it's off, and you leave it
> alone. Or the other way around.
> Then, after a while, you go onto the next line, and the scale-subset of
> the "Ur-scale" changes, and you have a new set of tones to jam on.

That's a very nice idea!

If you are interested, I could add it to FTS 1.10.

Type in the ca next state rule, and FTS will play fractal tune
by this method, or you can play along yourself, and find
that the mode changes every so many notes, or every so
many seconds, or whatever,.

Or you press a particular MIDI keyboard key, or pedal, or
p.c. keyboard key, to change to the next mode in the sequence.

Will only take a few lines of programming to do the basic idea,
though I can easily imagine getting involved in adding elaborations
to it!

I'm especially interested in your idea, as I actually did some
some research into 2D CAs.

In fact, that CA research is what first got me started on programming
graphics, using XWindows on the Maths department machines
to program 2D cellular automata.

I wonder if there is anything sensible one can do here with 2D cellular
automata,...?

Robert

🔗Christopher Bailey <cb202@columbia.edu>

1/28/2001 12:52:22 PM

Robert Walker wrote:

>Hi Christopher,
>
>> Anyway, the point is that my idea was that, each "line" of this CA
>> represents a certain amount of "time" to "improvise" in.
>> For that period of time, one checks the grid: a "1" means that
>> scale-tone
>> is "on" and you can play with it, a "0" means it's off, and you
>> leave
>> it
>> alone. Or the other way around.
>> Then, after a while, you go onto the next line, and the scale-subset
>>of
>> the "Ur-scale" changes, and you have a new set of tones to jam on.
>
>That's a very nice idea!
>
>If you are interested, I could add it to FTS 1.10.
>
>Type in the ca next state rule, and FTS will play fractal tune
>by this method, or you can play along yourself, and find
>that the mode changes every so many notes, or every so
>many seconds, or whatever,.

Cool.

That program only works for Windows right? I've got a Mac.
Nonetheless--go ahead and spread the love!!

'sides, I've got it (CA) running on Macs with MAX/MSP, and if anyone wants
it free, I can compile the stuff into an application.

yay.

>I'm especially interested in your idea, as I actually did some
>some research into 2D CAs.
>In fact, that CA research is what first got me started on programming
>graphics, using XWindows on the Maths department machines
>to program 2D cellular automata.
>I wonder if there is anything sensible one can do here with 2D cellular
>automata,...?
>
>Robert

I have a friend who did a *great* installation based on 2D CA, read about
it at:

http://music.columbia.edu/~jason/locust

It hasn't anything to do with tuning, explicitly, although I suppose it
could if the user happened to recite in strict 19tET or something(!)!)

Any way, clue me in to any other ideas you have about CA's, with or
without xenharmonic content. . . .

***From: Christopher Bailey******************

http://music.columbia.edu/~chris

**********************************************

🔗Robert Walker <robert_walker@rcwalker.freeserve.co.uk>

1/28/2001 3:02:11 PM

Hi Christopher,

>> Then, after a while, you go onto the next line, and the scale-subset
>>of
>> the "Ur-scale" changes, and you have a new set of tones to jam on.
...

>>Type in the ca next state rule, and FTS will play fractal tune
>>by this method, or you can play along yourself, and find
>>that the mode changes every so many notes, or every so
>>many seconds, or whatever,.

> Cool.
> That program only works for Windows right? I've got a Mac.

Yes, sorry.

> Nonetheless--go ahead and spread the love!!

> 'sides, I've got it (CA) running on Macs with MAX/MSP, and if anyone wants
> it free, I can compile the stuff into an application.

Okay, it's on the For the Future list for FTS - I'll
add it to FTS 1.10 when I get started on it - prob. do a whole
cellular automaton section.

I'm v. much looking forward to hearing what it sounds like!

> I have a friend who did a *great* installation based on 2D CA, read about
> it at:

> http://music.columbia.edu/~jason/locust

Thanks!

> It hasn't anything to do with tuning, explicitly, although I suppose it
> could if the user happened to recite in strict 19tET or something(!)!)

> > Any way, clue me in to any other ideas you have about CA's, with or
without xenharmonic content. . . .

Will do!

Robert

🔗Robert Walker <robert_walker@rcwalker.freeserve.co.uk>

1/29/2001 7:50:06 AM

Hi Christopher,

I've had one idea already for 2D CAs from thinking over your friend's installation.

How about using a 2D CA, the rows decide the mode, and the columns decide which partials
to include in a "custom voice" timbre like the ones I've been experimenting with.

Then you run the CA for a large number of generations before starting, and find the
average number of cells per row and column for, say, 100 generations.

Then, if the number exceeds that average, note is on, or partial is included. If less, it
is left out.

Another idea: the timbre varies for each note of the mode, depending on which cells are
occupied in its row (and the only ones played are the ones with at least one cell
occupied).

I'll give that a go, and you are welcome to as well of course!

Robert

🔗Robert Walker <robert_walker@rcwalker.freeserve.co.uk>

1/31/2001 7:56:39 AM

Hi Christopher,

Some nice ideas here!

> changing. One would have to find a CA with lots of activity all over the
> place for a good long time.

That's not a problem!

Try downloading Life32, and the libraries of game of life patterns - there are
many that keep going endlessly.

http://psoup.math.wisc.edu/Life32.html

Then try some of the other rules.

/2 was one of the ones I studied.

Try putting a block of filled, or randomly filled cells in the middle of the playing area,
and let it go.

Notice the "spaceships" moving "at the "speed of light" that are very common with this
rule.

(speed of light, in GOL terminology = speed of one cell per generation - max poss.
and spaceship = moving pattern of cells - the GOL "glider" is an example).

The original GOL _usually_ ends up in a static or repeating state, but as you'll see from
the libraries, large numbers of patterns have been discovered or constructed that don't

Other rules like /2 only repeat if you choose the start state quite carefully.

(Of course, they all repeat eventually if played on a finite grid, but period can be v.
large then).

A 4X4 square for timbre changes would work well for a rule like /2 played on a finite grid
I'd imagine.

Robert