Csound Csound-dev Csound-tekno Search About

[Csnd] Cellular Automata Streams

Date2018-09-11 20:34
FromSteven Yi
Subject[Csnd] Cellular Automata Streams
Hi All,

I'd like to share a project exploring one-dimensional celullar automata:

http://kunstmusik.com/2018/09/11/cellular-automata-streams/

The example does CA processing using standard Wolfram classifications,
interpreting the rule number as an 8-bit value.  Unlike typical
implementations, rather than have an array represent a step in a CA
process iteration, the ca_stream opcode treats it as a pre-filled ring
buffer/delay-line and processes the CA as values in a streaming
fashion.  New values are emitted as well as used as input into the
delay line.

I haven't seen 1D CA implemented as a delay line before, though I also
haven't spent too much time in this area of research. I think it might
be interesting to allow input into the CA so that users might
interactively "play" the CA (the feedback value could be as simple as
bitwise-or of user input plus generated CA value).  The inspiration
there being similar to how 2D CA systems often allow user painting of
cells to interact with the system. I plan to create a web application
to explore this.

Cheers!
steven

Csound mailing list
Csound@listserv.heanet.ie
https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND
Send bugs reports to
        https://github.com/csound/csound/issues
Discussions of bugs and features can be posted here

Date2018-09-11 20:47
FromVictor Lazzarini
SubjectRe: [Csnd] Cellular Automata Streams
I think Eduardo Miranda's PhD thesis from the 90s was based on CA work. There may be papers from the time as well that you
can check out.

Victor Lazzarini
Dean of Arts, Celtic Studies, and Philosophy
Maynooth University
Ireland

> On 11 Sep 2018, at 20:35, Steven Yi  wrote:
> 
> Hi All,
> 
> I'd like to share a project exploring one-dimensional celullar automata:
> 
> http://kunstmusik.com/2018/09/11/cellular-automata-streams/
> 
> The example does CA processing using standard Wolfram classifications,
> interpreting the rule number as an 8-bit value.  Unlike typical
> implementations, rather than have an array represent a step in a CA
> process iteration, the ca_stream opcode treats it as a pre-filled ring
> buffer/delay-line and processes the CA as values in a streaming
> fashion.  New values are emitted as well as used as input into the
> delay line.
> 
> I haven't seen 1D CA implemented as a delay line before, though I also
> haven't spent too much time in this area of research. I think it might
> be interesting to allow input into the CA so that users might
> interactively "play" the CA (the feedback value could be as simple as
> bitwise-or of user input plus generated CA value).  The inspiration
> there being similar to how 2D CA systems often allow user painting of
> cells to interact with the system. I plan to create a web application
> to explore this.
> 
> Cheers!
> steven
> 
> Csound mailing list
> Csound@listserv.heanet.ie
> https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND
> Send bugs reports to
>        https://github.com/csound/csound/issues
> Discussions of bugs and features can be posted here

Csound mailing list
Csound@listserv.heanet.ie
https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND
Send bugs reports to
        https://github.com/csound/csound/issues
Discussions of bugs and features can be posted here

Date2018-09-11 21:24
FromRory Walsh
SubjectRe: [Csnd] Cellular Automata Streams
One of his books also features quite a lot on CA. Can't recall which one. The composing with computers one maybe? It's probably the same content as his dissertation. 

On Tue 11 Sep 2018, 20:48 Victor Lazzarini, <Victor.Lazzarini@mu.ie> wrote:
I think Eduardo Miranda's PhD thesis from the 90s was based on CA work. There may be papers from the time as well that you
can check out.

Victor Lazzarini
Dean of Arts, Celtic Studies, and Philosophy
Maynooth University
Ireland

> On 11 Sep 2018, at 20:35, Steven Yi <stevenyi@GMAIL.COM> wrote:
>
> Hi All,
>
> I'd like to share a project exploring one-dimensional celullar automata:
>
> http://kunstmusik.com/2018/09/11/cellular-automata-streams/
>
> The example does CA processing using standard Wolfram classifications,
> interpreting the rule number as an 8-bit value.  Unlike typical
> implementations, rather than have an array represent a step in a CA
> process iteration, the ca_stream opcode treats it as a pre-filled ring
> buffer/delay-line and processes the CA as values in a streaming
> fashion.  New values are emitted as well as used as input into the
> delay line.
>
> I haven't seen 1D CA implemented as a delay line before, though I also
> haven't spent too much time in this area of research. I think it might
> be interesting to allow input into the CA so that users might
> interactively "play" the CA (the feedback value could be as simple as
> bitwise-or of user input plus generated CA value).  The inspiration
> there being similar to how 2D CA systems often allow user painting of
> cells to interact with the system. I plan to create a web application
> to explore this.
>
> Cheers!
> steven
>
> Csound mailing list
> Csound@listserv.heanet.ie
> https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND
> Send bugs reports to
>        https://github.com/csound/csound/issues
> Discussions of bugs and features can be posted here

Csound mailing list
Csound@listserv.heanet.ie
https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND
Send bugs reports to
        https://github.com/csound/csound/issues
Discussions of bugs and features can be posted here
Csound mailing list Csound@listserv.heanet.ie https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND Send bugs reports to https://github.com/csound/csound/issues Discussions of bugs and features can be posted here

Date2018-09-11 22:06
FromSteven Yi
SubjectRe: [Csnd] Cellular Automata Streams
Thanks Rory and Victor! I'll plan to look into those as soon as I have a chance.

On Tue, Sep 11, 2018, 16:24 Rory Walsh <rorywalsh@ear.ie> wrote:
One of his books also features quite a lot on CA. Can't recall which one. The composing with computers one maybe? It's probably the same content as his dissertation. 

On Tue 11 Sep 2018, 20:48 Victor Lazzarini, <Victor.Lazzarini@mu.ie> wrote:
I think Eduardo Miranda's PhD thesis from the 90s was based on CA work. There may be papers from the time as well that you
can check out.

Victor Lazzarini
Dean of Arts, Celtic Studies, and Philosophy
Maynooth University
Ireland

> On 11 Sep 2018, at 20:35, Steven Yi <stevenyi@GMAIL.COM> wrote:
>
> Hi All,
>
> I'd like to share a project exploring one-dimensional celullar automata:
>
> http://kunstmusik.com/2018/09/11/cellular-automata-streams/
>
> The example does CA processing using standard Wolfram classifications,
> interpreting the rule number as an 8-bit value.  Unlike typical
> implementations, rather than have an array represent a step in a CA
> process iteration, the ca_stream opcode treats it as a pre-filled ring
> buffer/delay-line and processes the CA as values in a streaming
> fashion.  New values are emitted as well as used as input into the
> delay line.
>
> I haven't seen 1D CA implemented as a delay line before, though I also
> haven't spent too much time in this area of research. I think it might
> be interesting to allow input into the CA so that users might
> interactively "play" the CA (the feedback value could be as simple as
> bitwise-or of user input plus generated CA value).  The inspiration
> there being similar to how 2D CA systems often allow user painting of
> cells to interact with the system. I plan to create a web application
> to explore this.
>
> Cheers!
> steven
>
> Csound mailing list
> Csound@listserv.heanet.ie
> https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND
> Send bugs reports to
>        https://github.com/csound/csound/issues
> Discussions of bugs and features can be posted here

Csound mailing list
Csound@listserv.heanet.ie
https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND
Send bugs reports to
        https://github.com/csound/csound/issues
Discussions of bugs and features can be posted here
Csound mailing list Csound@listserv.heanet.ie https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND Send bugs reports to https://github.com/csound/csound/issues Discussions of bugs and features can be posted here
Csound mailing list Csound@listserv.heanet.ie https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND Send bugs reports to https://github.com/csound/csound/issues Discussions of bugs and features can be posted here

Date2018-09-11 22:09
FromOeyvind Brandtsegg
SubjectRe: [Csnd] Cellular Automata Streams
Oh, sounds nice. I wonder how implementing it as a delay line would be different than, say, as an array played back sequentially? Does the delay time vary dynamically, or is it statically equal the size of one generation? 

Den tir. 11. sep. 2018, 9.35 p.m. skrev Steven Yi <stevenyi@gmail.com>:
Hi All,

I'd like to share a project exploring one-dimensional celullar automata:

http://kunstmusik.com/2018/09/11/cellular-automata-streams/

The example does CA processing using standard Wolfram classifications,
interpreting the rule number as an 8-bit value.  Unlike typical
implementations, rather than have an array represent a step in a CA
process iteration, the ca_stream opcode treats it as a pre-filled ring
buffer/delay-line and processes the CA as values in a streaming
fashion.  New values are emitted as well as used as input into the
delay line.

I haven't seen 1D CA implemented as a delay line before, though I also
haven't spent too much time in this area of research. I think it might
be interesting to allow input into the CA so that users might
interactively "play" the CA (the feedback value could be as simple as
bitwise-or of user input plus generated CA value).  The inspiration
there being similar to how 2D CA systems often allow user painting of
cells to interact with the system. I plan to create a web application
to explore this.

Cheers!
steven

Csound mailing list
Csound@listserv.heanet.ie
https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND
Send bugs reports to
        https://github.com/csound/csound/issues
Discussions of bugs and features can be posted here
Csound mailing list Csound@listserv.heanet.ie https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND Send bugs reports to https://github.com/csound/csound/issues Discussions of bugs and features can be posted here

Date2018-09-11 23:07
FromSteven Yi
SubjectRe: [Csnd] Cellular Automata Streams
With the delay line there isn't the same boundary handling as one gets
with computing the first and last cells with the array with
generations. It should result in a slightly different sequence than
with the array played back sequentially, then triggering another
generation at end. The delay line here is fixed; I suppose it wouldn't
be too much trouble to make that vary dynamically.

I'm doing a bit of reading and saw CA being related to Linear Feedback
Shift Registers (LFSR)[1] in Wolfram's history of CA in New Kind of
Science.  I suppose this delay-line implementation is just that where
the linear function are the CA rules being applied.  (I don't know
much about LFSR's though!)

[1] - https://en.wikipedia.org/wiki/Linear-feedback_shift_register
On Tue, Sep 11, 2018 at 5:09 PM Oeyvind Brandtsegg  wrote:
>
> Oh, sounds nice. I wonder how implementing it as a delay line would be different than, say, as an array played back sequentially? Does the delay time vary dynamically, or is it statically equal the size of one generation?
>
> Den tir. 11. sep. 2018, 9.35 p.m. skrev Steven Yi :
>>
>> Hi All,
>>
>> I'd like to share a project exploring one-dimensional celullar automata:
>>
>> http://kunstmusik.com/2018/09/11/cellular-automata-streams/
>>
>> The example does CA processing using standard Wolfram classifications,
>> interpreting the rule number as an 8-bit value.  Unlike typical
>> implementations, rather than have an array represent a step in a CA
>> process iteration, the ca_stream opcode treats it as a pre-filled ring
>> buffer/delay-line and processes the CA as values in a streaming
>> fashion.  New values are emitted as well as used as input into the
>> delay line.
>>
>> I haven't seen 1D CA implemented as a delay line before, though I also
>> haven't spent too much time in this area of research. I think it might
>> be interesting to allow input into the CA so that users might
>> interactively "play" the CA (the feedback value could be as simple as
>> bitwise-or of user input plus generated CA value).  The inspiration
>> there being similar to how 2D CA systems often allow user painting of
>> cells to interact with the system. I plan to create a web application
>> to explore this.
>>
>> Cheers!
>> steven
>>
>> Csound mailing list
>> Csound@listserv.heanet.ie
>> https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND
>> Send bugs reports to
>>         https://github.com/csound/csound/issues
>> Discussions of bugs and features can be posted here
>
> Csound mailing list Csound@listserv.heanet.ie https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND Send bugs reports to https://github.com/csound/csound/issues Discussions of bugs and features can be posted here

Csound mailing list
Csound@listserv.heanet.ie
https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND
Send bugs reports to
        https://github.com/csound/csound/issues
Discussions of bugs and features can be posted here

Date2018-09-12 07:58
FromOeyvind Brandtsegg
SubjectRe: [Csnd] Cellular Automata Streams
That sounds interesting indeed. Perhaps it could even be extended to work as a general filter/generator on an audio stream then? Audio input could be added with a gain control at some point in the delay line. And the amount of feedback controlling the randomness of the output. Perhaps the input could then be used inversely (to the feedback), to guide the tendency of the system towards a desired state? Maybe one would need a floating point value for each cell instead of the binary represenation, and that would certainly add to the processing cost. I recall that E.Miranda did some work with CA having cells of different colours, so the value of each cell would not necessarily even have to be one dimensional.

Den ons. 12. sep. 2018 kl. 00:07 skrev Steven Yi <stevenyi@gmail.com>:
With the delay line there isn't the same boundary handling as one gets
with computing the first and last cells with the array with
generations. It should result in a slightly different sequence than
with the array played back sequentially, then triggering another
generation at end. The delay line here is fixed; I suppose it wouldn't
be too much trouble to make that vary dynamically.

I'm doing a bit of reading and saw CA being related to Linear Feedback
Shift Registers (LFSR)[1] in Wolfram's history of CA in New Kind of
Science.  I suppose this delay-line implementation is just that where
the linear function are the CA rules being applied.  (I don't know
much about LFSR's though!)

[1] - https://en.wikipedia.org/wiki/Linear-feedback_shift_register
On Tue, Sep 11, 2018 at 5:09 PM Oeyvind Brandtsegg <obrandts@gmail.com> wrote:
>
> Oh, sounds nice. I wonder how implementing it as a delay line would be different than, say, as an array played back sequentially? Does the delay time vary dynamically, or is it statically equal the size of one generation?
>
> Den tir. 11. sep. 2018, 9.35 p.m. skrev Steven Yi <stevenyi@gmail.com>:
>>
>> Hi All,
>>
>> I'd like to share a project exploring one-dimensional celullar automata:
>>
>> http://kunstmusik.com/2018/09/11/cellular-automata-streams/
>>
>> The example does CA processing using standard Wolfram classifications,
>> interpreting the rule number as an 8-bit value.  Unlike typical
>> implementations, rather than have an array represent a step in a CA
>> process iteration, the ca_stream opcode treats it as a pre-filled ring
>> buffer/delay-line and processes the CA as values in a streaming
>> fashion.  New values are emitted as well as used as input into the
>> delay line.
>>
>> I haven't seen 1D CA implemented as a delay line before, though I also
>> haven't spent too much time in this area of research. I think it might
>> be interesting to allow input into the CA so that users might
>> interactively "play" the CA (the feedback value could be as simple as
>> bitwise-or of user input plus generated CA value).  The inspiration
>> there being similar to how 2D CA systems often allow user painting of
>> cells to interact with the system. I plan to create a web application
>> to explore this.
>>
>> Cheers!
>> steven
>>
>> Csound mailing list
>> Csound@listserv.heanet.ie
>> https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND
>> Send bugs reports to
>>         https://github.com/csound/csound/issues
>> Discussions of bugs and features can be posted here
>
> Csound mailing list Csound@listserv.heanet.ie https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND Send bugs reports to https://github.com/csound/csound/issues Discussions of bugs and features can be posted here

Csound mailing list
Csound@listserv.heanet.ie
https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND
Send bugs reports to
        https://github.com/csound/csound/issues
Discussions of bugs and features can be posted here


--
Csound mailing list Csound@listserv.heanet.ie https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND Send bugs reports to https://github.com/csound/csound/issues Discussions of bugs and features can be posted here

Date2018-09-12 12:24
FromMichael Gogins
SubjectRe: [Csnd] Cellular Automata Streams
Very clever!

Regards, 
Mike

On Tue, Sep 11, 2018, 15:35 Steven Yi <stevenyi@gmail.com> wrote:
Hi All,

I'd like to share a project exploring one-dimensional celullar automata:

http://kunstmusik.com/2018/09/11/cellular-automata-streams/

The example does CA processing using standard Wolfram classifications,
interpreting the rule number as an 8-bit value.  Unlike typical
implementations, rather than have an array represent a step in a CA
process iteration, the ca_stream opcode treats it as a pre-filled ring
buffer/delay-line and processes the CA as values in a streaming
fashion.  New values are emitted as well as used as input into the
delay line.

I haven't seen 1D CA implemented as a delay line before, though I also
haven't spent too much time in this area of research. I think it might
be interesting to allow input into the CA so that users might
interactively "play" the CA (the feedback value could be as simple as
bitwise-or of user input plus generated CA value).  The inspiration
there being similar to how 2D CA systems often allow user painting of
cells to interact with the system. I plan to create a web application
to explore this.

Cheers!
steven

Csound mailing list
Csound@listserv.heanet.ie
https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND
Send bugs reports to
        https://github.com/csound/csound/issues
Discussions of bugs and features can be posted here
Csound mailing list Csound@listserv.heanet.ie https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND Send bugs reports to https://github.com/csound/csound/issues Discussions of bugs and features can be posted here

Date2018-09-13 04:45
From"Dr. Richard Boulanger"
SubjectRe: [Csnd] Cellular Automata Streams
Steven,

Interesting and cool.  Thanks for sharing.

I look forward very much to the web app explorer you mention designing.

Best

-dB

PS.  How did your first week or two of classes go?  Great I am sure.  Best wishes.

_____________________________________________
Dr. Richard Boulanger
Professor of Electronic Production and Design
Professional Writing and Music Technology Division
Berklee College of Music
______________________________________________
President of Boulanger Labs - http://boulangerlabs.com
Author & Editor of The Csound Book - http://mitpress.mit.edu/books/csound-book
Author & Editor of The Audio Programming Book - http://mitpress.mit.edu/books/audio-programming-book
______________________________________________
about: 
http://www.boulangerlabs.com/#about
about: http://www.csounds.com/community/developers/dr-richard-boulanger/
music: http://www.csounds.com/community/developers/dr-richard-boulanger/dr-richard-boulanger-music/

______________________________________________
email: rboulanger@berklee.edu
facebook: https://www.facebook.com/richard.boulanger.58

On Wed, Sep 12, 2018 at 7:24 AM, Michael Gogins <michael.gogins@gmail.com> wrote:
Very clever!

Regards, 
Mike

On Tue, Sep 11, 2018, 15:35 Steven Yi <stevenyi@gmail.com> wrote:
Hi All,

I'd like to share a project exploring one-dimensional celullar automata:

http://kunstmusik.com/2018/09/11/cellular-automata-streams/

The example does CA processing using standard Wolfram classifications,
interpreting the rule number as an 8-bit value.  Unlike typical
implementations, rather than have an array represent a step in a CA
process iteration, the ca_stream opcode treats it as a pre-filled ring
buffer/delay-line and processes the CA as values in a streaming
fashion.  New values are emitted as well as used as input into the
delay line.

I haven't seen 1D CA implemented as a delay line before, though I also
haven't spent too much time in this area of research. I think it might
be interesting to allow input into the CA so that users might
interactively "play" the CA (the feedback value could be as simple as
bitwise-or of user input plus generated CA value).  The inspiration
there being similar to how 2D CA systems often allow user painting of
cells to interact with the system. I plan to create a web application
to explore this.

Cheers!
steven

Csound mailing list
Csound@listserv.heanet.ie
https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND
Send bugs reports to
        https://github.com/csound/csound/issues
Discussions of bugs and features can be posted here
Csound mailing list Csound@listserv.heanet.ie https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND Send bugs reports to https://github.com/csound/csound/issues Discussions of bugs and features can be posted here

Csound mailing list Csound@listserv.heanet.ie https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND Send bugs reports to https://github.com/csound/csound/issues Discussions of bugs and features can be posted here

Date2019-03-04 01:44
From"Dr. Richard Boulanger"
SubjectRe: [Csnd] Cellular Automata Streams
Steven,

Interesting.
Have you made this a part of your Live Coding System?
It would be fun to explore there
Visualization?
Your proposed WebApp will be very very inspiring.

Keep us posted.

Best

-dB

_____________________________________________
Dr. Richard Boulanger
Professor of Electronic Production and Design
Professional Writing and Music Technology Division
Berklee College of Music
______________________________________________
OFFICE: 1126 Boylston St., Suite 201 (EPD), Suite 208 (Boulanger)
______________________________________________


On Tue, Sep 11, 2018 at 3:35 PM Steven Yi <stevenyi@gmail.com> wrote:
Hi All,

I'd like to share a project exploring one-dimensional celullar automata:

http://kunstmusik.com/2018/09/11/cellular-automata-streams/

The example does CA processing using standard Wolfram classifications,
interpreting the rule number as an 8-bit value.  Unlike typical
implementations, rather than have an array represent a step in a CA
process iteration, the ca_stream opcode treats it as a pre-filled ring
buffer/delay-line and processes the CA as values in a streaming
fashion.  New values are emitted as well as used as input into the
delay line.

I haven't seen 1D CA implemented as a delay line before, though I also
haven't spent too much time in this area of research. I think it might
be interesting to allow input into the CA so that users might
interactively "play" the CA (the feedback value could be as simple as
bitwise-or of user input plus generated CA value).  The inspiration
there being similar to how 2D CA systems often allow user painting of
cells to interact with the system. I plan to create a web application
to explore this.

Cheers!
steven

Csound mailing list
Csound@listserv.heanet.ie
https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND
Send bugs reports to
        https://github.com/csound/csound/issues
Discussions of bugs and features can be posted here
Csound mailing list Csound@listserv.heanet.ie https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND Send bugs reports to https://github.com/csound/csound/issues Discussions of bugs and features can be posted here