Cellular automata or 'the game of life' as it is also called, are based on bitpatterns, basically a row or matrix of 'bits' or 'cells'. On every clockpulse the pattern is changed by checking a group of bits and looking up in a table how their specific bitpattern should change. E.g. you could look at the cells immediately around one cell, if there are to many 'alive' (on) it's to crowded and the cell dies (off), if there are to few 'alive' it's to lonely and the cell sadly dies as well. But if there is a comfortable number of cells living around the cell the cell either stays alive or comes alive. This way you get evolving patterns. You need a startpattern that might be random or well choosen, and depending on the startpattern and the 'rules' (the contents of the lookup table) the whole population might live for a long time or die out eventually.
About the patches:
To say it in the most precise way, this is what the patches 'emulate': 'Four-bit nibbles' adress sixteen memorylocations, that each hold a nibble, that is looked up on every clockpulse, to be used as the adress in the next iteration. There are three usable nibbles in the patch, each with the same set of 'rules', that is they share the same lookup memorylocations. The contents of the sixteen memorylocations are in practise the sixteen knobvalues.
A nibble is the name for a group of four bits that can represent a hexadecimal number ranging from 0 up to 15. It's half a byte, which is eight bits, so that's why they call it a nibble. (That's all there is to logic, W. As Spock says: logic predicts that one AND one IS one, as TWO is one|zero. Scott me up, beamy...!)
So how it is done:
The patch is not really 'binary' as that would consume still to much modules even in V3. Instead the 'nibbles' are conveniently stored in S&H modules. By decoding a nibble into a one-of-sixteen circuit (the group of compare and XOR modules) sixteen knobs can be adressed. Each knob delivers a new 'nibble' to store in the S&H on the next clockpulse. Also the sixteen outputs of the one-of-sixteen circuit are coded back to the real four bits of a nibble, using so called 'mickey mouse'-logic (the four eight-input mixers). We now have three types of output to work with, {1} the sixteen separate logic outputs of the XOR-modules, only one of these can be on, {2} the three S&H's that can have sixteen values between 0 and 64, values jumping in steps of 4, and {3} the four discrete bits that form the 'nibble' at the outputs of the eight-input mixers, whose values must be interpreted as 0 or anything greater that 0. What to do with the outputvalues is up to you. One patch translates the outputs to harmonic contents of a single pitched sound. Another tries to play melodies and drum the patterns away. As always, the imagination is the limit.
So how to program a pattern:
If knob1 is closed the next selected knob will be knob1 again. If knob1 points to knob2, that one will be the next knob and if that one points to knob5, which on it's turn points to knob1, the pattern will be knob1 - knob2 - knob5 - knob1 - knob2 - knob5 - knob1, etc. So here repetition occurs after three clockpulses, but in general the longest pattern will be sixteen clocks. So to make it more interesting knob16 is replaced by a randomvalue. If in a pattern knob16 is reached it jumps randomly to one of the other knobs. Now it starts to get interesting as in the example the patterns would never use knob3 and knob4 and all knobs after knob5. But if knob3 points to knob4 and knob4 points to knob16, and we will also let knob5 point to knob16 instead of knob1, and all other knbs point to either knob1 or knob 3, the pattern goes random, but not completely random, it starts to randomly play the small fragments all ending with knob16, sometimes preceded by a randomly chosen knob and sometimes jumping into the middle of the first two fragments. There is one 'disallowed' state in the knobsettings, if a knob points to itself the pattern 'hangs' on that knob - the 'population' sadly dies and it's game over.
On loading the patch in a NM slot, the S&H modules will be initialised with values of zero, so the three nibbles all point to knob1. But for every nibble, when knob16 is reached a different random value for each nibble is generated, so the combination of the three nibbles gives a more varied pattern than only one nibble, but still fragments will be more or less recognizable according to the knobsettings.
So knob16 can actually be deassigned in this particular patch, tweaking knob sixteen doesn't do anything as it is replaced by a random value.
The 'rule'-values or 'to what value should a knob be set to make it jump to which other one' are:
Jump to Knob1: 0-7 Jump to Knob2: 8-15 Jump to Knob3: 16-23 Jump to Knob4: 24-31 Jump to Knob5: 32-39 Jump to Knob6: 40-47 Jump to Knob7: 48-55 Jump to Knob8: 56-63 Jump to Knob9: 64-71 Jump to Knob10: 72-79 Jump to Knob11: 80-87 Jump to Knob12: 88-95 Jump to Knob13: 96-103 Jump to Knob14: 104-111 Jump to Knob15: 112-119 Jump to Knob16: 120-127
BTW there was some flaky part in the patch somewhere right under. Don't remember exactly, but it has to do with the order in which the NM calculates the modules within a single sample. Or maybe that was fixed in the emailpatch, I will check that one out and send the proper patch if necessary.
Hope to have been helpfull with this explanation. I realize that for a newbee it might not be the most suitable patch to take a look at, but I know lot's of you guys are into patterns and might appreciate this kind of thing, as Clavia haven't published how the 16384 possible patterns in the pattern module evolve. (Ain't you curious? Is it the good old 'rotate-left and XOR with constant' pseudo-random method or is it maybe a Turing-like algoritm? And with that module set to eight steps there could only be 64 patterns, could there? So what settings give the same pattern? Is there a pattern to that? Ain't the whole universe just nothin' but a HUGE barcode pattern of drum'n'bass? Oops..., now I really get off topic)
So here is another of those "damn'd Hordijk-machines". Not your everyday housebeat maybe, as it is four simple non-linear ecosystems, exactly the formula that Mitchell Feigenbaum used to come to his 'Chaos'-theory. The equation is "next X"= Growth * "current X" * (1 - "current X"). The X values are used to play notes, but could control anything. The systems can influence each other. They can be helped by their right neighbours to become more alife while their growth can be suppressed by their left neighbours. Sounds like real life, don't it? Well, actually it sounds like NM, so don't worry, no need for peace keeping forces in your machine. ...Sounds like NM... means some external effects like reverb, etc. required. Some settings can make all four systems slowly succumb, others can result in chaotic behaviour, and somewhere in between there should be "easy livin'", a thing that I did knew before (...before the NM, that is...).
Read the very accessible book "Chaos: making a new science" from James Gleick, get it in the library, it's a good introduction into chaotic behaviour, really. Very inspiring. Then you should also be able to figure out what should happen in the patch and why it's made this way.
For the equation to work it can not start with a zero value for X, as nothing can grow out of nothing unless some "Act of God" is involved. So a provision is made that a small value is automatically added to X only on the first cycle when X is zero due to patch loading conditions.
And as always, the chosen notes are from the intro-theme of the song "When the dragon eats your mother" from Mahavishnu John McLaughlin.