In the 1970s, British mathematician John Conway devised Game of Life a simple turn based zero player game in-which patterns of cells evolve through generations, either surviving or not based on simple rules.
Cells are arranged in a 2D grid, and if they have neighbours determines whether or not they made the next turn. Here’s the rules, copied and pasted from Wikipedia:
- Any live cell with fewer than two live neighbours dies, as if caused by under-population.
- Any live cell with two or three live neighbours lives on to the next generation.
- Any live cell with more than three live neighbours dies, as if by overcrowding.
- Any dead cell with exactly three live neighbours becomes a live cell, as if by reproduction.
A pre-determined pattern can be loaded to start the game, or the observer can draw in cells. As this plays out, you’ll find everything can either die after a few generations, things can evolve and last for many generations or they can even get stuck in a loops and constantly playout.
What’s amazing about this game is that it demonstrates simple rules can give way to complex systems.
This sort of generative, self-evolving pattern can cause some really interesting compositional possibilities, and has been exploited by musicians and programmers alike, for instance iOS app Runxt Life, this sequencer by Grant Muller or this Nintendo DS device named GlitchDS.
Newscool is a flagship ensemble and really shows off what Reaktor can do. It’s a groovebox (unsurprisingly) based on Conway’s Game of Life. Reaktor has this to say about it:
The sequencer is based on the Life model developed by John Conway in the 1970s. A two-dimensional pattern is processed in steps: An element of the pattern becomes alive (dark in this implementation) in the following step if three of its eight neighbors are alive in this step; it remains alive in the subsequent one if two or three neighbors are alive in the current one – else it dies (and becomes a light square again). Several patterns emerge over time by this set of rules: Gliders move over the grid, crosses oscillate in several phases, some objects remain stable and don’t change from step to step while others remain unstable forever. These patterns trigger the sound engine, generating “lively” sequences.
At the heart of it is two separate ensembles, at the top is ‘life’, a sequencer (in green), the eight tone generators (redy/pink) and the multi-fx unit (white) are both part of an ensemble called ‘NWSCL’:
Despite it’s simplicity, Newscool can look incredibly daunting, and for this reason, I suggest you download this plugin reset I’ve made for the tutorial. It has most of the main features disabled, so by enabling them you can hear what’s happening. Grab it here.
It makes sense to start by looking at the sequencer, or Life Sequencer, as Reaktor calls it. Although this is based on Game of Life, the main difference is that the sequencer loops back on itself, rather than cascading off into oblivion.
The left display is our Board Display, which is where we edit our patterns either by loading presets, drawing with our mouse or randomly generating cells. On the right is the Performer Display which shows the current stage of the sequence. This is uneditable.
Between these two boards you can see the length of the cycle (in yellow), which determines how long the loop is by the number of steps (red). In this example, we would get a loop of 16 x 16 steps, which is one bar in length.
With the Offset set at 0 our loops will start from the beginning, however if we were to add 3, for example, our loop would start 3 1/16th notes in. This is useful for getting your loop working with other elements, altering the emphasis of downbeats.
The two buttons underneath the Step are Run and Next. Run is enabled by default, and this will trigger our sequencer into life as soon as the MIDI clock is playing; if we stop, it stops too. Next cycles through each step of the sequence one by one, so we can hear exactly what’s going on.
Below this we have the Copy section. The blue and soft red arrows copy the current pattern to either the Board Display or Performer Display. The Loop menu above it changes the functionality of the Performer Display.
There’s three function, the first of which is Loop. This is the default setting that cycles back to the starting position. This works by copying over the Board Display’s pattern when the end of the loop is end of the length of steps is reached.
Start is the next mode. This allows the cells to carry on evolving regardless of the length and step settings. This can either peter out to nothing or get locked in a continual loop. In essence, this is never copying the Board Display to the Performer Display.
Lastly is the manual mode. I’ve found this really similar to Start, in that it will run ad infinitum. All of these modes can be overridden by triggering the the arrow buttons underneath.
The image below is a simple pattern to start off with. Notice the top right three squares disappear on the first turn – this is because they have no direct neighbours and die through under-population.
The crude ‘S’ shaped cells on the left turn into a ‘0’ shape and do nothing interesting. Whereas the the closed square bracket ‘]’ shape modulates through a few interesting shapes.
Simply by adding one square to this we can drastically alter the course of it, and that’s what makes this sequencer a really powerful generative tool.
I’ve added a single square to the ‘S’ and the ‘]‘ shape and run the sequence.
The ‘S’ shape has turned into what’s called a glider; and is a well-known phenomenon in Game of Life. This is shape that tumbles off into the distance. Our closed bracket shape now disappears in four turns.
Let’s look at the controls just underneath both displays.
On the left we have Load, Clear and Rnd, which will generate patterns in the Board Display, where Clear wipes the patterns and Rnd (obviously) generates a random patterns.
Load relates to the Presets menu, which you can access by click + drag, on where it says 4 Simple Gliders (that took me a while to figure out as I was clicking the up and down arrows, which do nothing).
You might notice the X-Size-Y changing with different presets; this is the width (X) and height (Y) of the Board Display grid, and it can be changed manually, even with a preset loaded. Ultimately, this affects the resolution of cells you can draw/load in.
On the right-hand side underneath the Pattern Display, there X-Wrap-Y, Offset and Sens. The X-Wrap-Y is perhaps one of the harder elements of the sequencer to wrap your head around. If you minimise both controls and looks carefully at thePattern Display you will see all of the dots are a dark blue colour.
This colour relates to one of the eight tone generators (more on this next). If you program a sequence you should hear just one tone playing. Changing the X and Y wrap will add new colours into the board. Adjusting just the x-wrap will scroll through the tone generators colours along the x-axis and the y-wrap along the y-axis:
Offsets is easiest to understand when both the X and Y Wrap at at minimum position. While here and Offset is at 0, the board is full of dark blue dots. Adjusting the Offset will scroll through the colours of all of the dots, unlike the X and Y Wrap which cycles through rainbow-like patterns.
Sens[itivity] will effect how many triggered are generated from the pattern. Fewer at full counter-clockwise and more as it’s dialled up. Now we’ve gotten our heads around the sequencer, let’s look at the tone generation and FX in the next ensemble; NWSCL.