A musically interactive and evolutionary
"Incredibly versatile and beautifully balances user control and randomness" - Julia
"I have no clue how this exactly works but it is so mesmerizing to both watch and listen to–so fleshed out and amazing" - Anthony
"Every screenshot is like its own abstract art piece" - Alyssa
Terry Automata uses a 16 row x 33 column grid of cells for processing. Row 1 is the current generation of cells and previous generations of ECA move downwards. Yellow cells are Terryng looped cells that employ Turing Machine register shift right logic. Pink Automata cells on the other hand will evolve according to the current ECA rule number which can be changed in the top right corner. Learn more about Elementary Cellular Automata rules here.
synthesis - The supersaw is synthesized in ChucK by stacking 5 sawtooth oscillators together. The first oscillator acts as the center fundamental frequency (F0) and subsequent oscillator pairs are slightly detuned in frequency symmetrically above and below F0 to create a supersaw chorus effect (F0 ± ΔHz). The farther away from F0, the lower the gain of the oscillator. My supersaw is not phase-locked and thus, has cool artifacts :D
pitch - Supersaw pitch is determined by the first 8 cells on the top left. These 8 cells binary encode an 8-bit integer (0-255). Note that this number is binary encoded from right to left, Least Significant Bit to Most Significant Bit (Figure 3). This 8-bit integer is scaled with PITCH (Figure 2: bottom left) which has a continuous range of 1.0 - 4.0, giving the supersaw a pitch range of 0.0 - 1020.0 Hz. Additionally, FILTER (Figure 2: bottom right) applies a lowpass filter to the supersaw for manual effects.
- Use the mouse to interact (ECA Rule, Pitch, Loop, Filter)
- Right click or hit [space] to toggle the menu (Clock Tempo, Reset)
acknowledgements & credits
Terryng Automata is built in Chunity (ChucK + Unity) and prototyped in C++.
References and resources that made this project possible: