Hi everyone,
here is a self-contained abstraction that functions as a one-dimensional cellular automaton for all the possible rules. There's a pretty exhaustive help file to explain the functionality.
Wolfram: a one-dimensional cellular automaton abstraction
Hi everyone,
here is a self-contained abstraction that functions as a one-dimensional cellular automaton for all the possible rules. There's a pretty exhaustive help file to explain the functionality.
@weightless wow, very nice. great documentation (very helpful, i need to put more time in that part of patching...). i will try to make some music with your patch. here´s a video (not from me) that shows some cellular automata music, it reminded me visually of the pixelgrid sequencer. its made with the program "visions of chaos" from the softology website, which could be interesting for testing different algorhytms (somehow linking the site doesnt work):
@Jona I was reading more about the non-propagating l-systems and cellular automata, and found out that for this kind of system with only one and zero states, there are only 256 possible rule sets, which were already categorised and can be derived from the binary version of the number itself. I feel this is much neater than typing the rules manually in a text file, then I got a bit carried away.
This helped me a great deal to understand how the automata works: https://pdfs.semanticscholar.org/2c5f/c1de950b1f215916dba1557ee2a9d95295a0.pdf
Thanks for the link, very nice. It looks like it's only using the yellow section of a wider output from the automata, that's a very interesting way to map the output. With the patch, this could be achieved by clipping the output of an abstraction which runs a bigger axiom, and perhaps be able to shift the clipped section left and right. Also running two or more abstractions in parallel with different rules would yield interesting results I would've thought (like you did in the 2lsys patch on the other thread), or even the same rule with different lengths or wrapping rules.
Anyway, lots of possible applications and idea and maybe somebody else can find a use for it too.
I will post future fixes and updates on the patch here, I haven't tested it much yet.
@weightless perhaps it could be quite nice if you can jump (for example at the beginning of a pattern) to a choosen iteration, so that you can repeat the same pattern (combination) if its nice.
@Jona I think with the ability to feed the abstraction a new axiom, you could save a certain iteration you arrive at (to a txt file, or to a Pd message box) and feed that as as the new axiom. Is this what you mean?
@weightless almost. my idea was to change the starting iteration from pattern to pattern. for example to start 4 times from iteration 20 then 2 times from iteration 10 etc.. i don´t know if it makes sense. it could get complicated with saved textfiles or messages if you want to jump between a lot of them (perhaps). it could also be possible to bang the iterations with until. i will also try to implement something like that by myself.
@Jona I'm not too sure, let me just see if I got it: let's think of a step sequencer kind of thing, do you mean that step 0 starts at iteration 20, then after 4 steps (we have arrived at iteration 24), step 5 will be iteration 10 etc...
The problem with this is that you either pre-compute all the iterations and load them at the right time as new axiom, or you'd need to start from zero every time there's an iteration jump (so to speak) and "until" to the one you need to start with.
I think all this, if indeed it's what you mean, perhaps it could be done outside the abstraction, but I'm not exactly sure how, might get a bit too involved.
Maybe a "goto $1" message to the right would be nice actually, so the next line that's output is the iteration you just specified. thanks for the suggestion, I'll see if I can implement that.
@weightless thanks for your thoughts about that. yes, thats the idea, for example to jump every 32th step if its a 32 step sequencer, but smaller steps are also possible. in the 2lsys example i used the reset method but without until.
@Jona I'll think about how I can implement that in the abstraction.
Just a thought, if this doesn't involve changing the rules or other settings, it could be worth pre-computing n iterations to a text file, and then have the sequencer address the text file directly with [text sequence], for example.
@weightless perhaps your text sequence idea is the most elegant solution for that, until could be quite expensive. still this is just a detail. great that you realized a cellular automata for pure data.
@weightless i am kind of fascinated. i put the "wolfram 6 loop" 2 times in the sequencer. and i think it generates interesting rhytmical and melodic structures. because of the 6 loop each step has 6 possible notes. here is the patch, i will clean it up and rethink the mapping when i have more time. its more or less a random result right now : wolframseq01.zip
@Jona Yes, I think is some cases the patch can be used in real time, but I guess it can also be thought of as an independent "generator" of sequences. Since for each set or rule number, boundary conditions and axiom all the future generations are going to be exactly the same, it's definitely cheaper to generate n iterations from the outside (with until) whenever the rule set changes, set the results to a [text] and address that instead.
Nice rhythms you got going on there!
Oops! Looks like something went wrong!