CELLULAR
ios synthesizer with cellular automata
In Cellular, there is a grid of cells called the "Universe". Each cell can be either alive or dead, and their states change over generations. There are rules governing how dead cells can come to life in the next generation and how live cells can either survive or die. This is how life evolves in the Universe. You can group cells into a commune and measure the population density of that commune. The population density determines the strength of the modulation signal, which you can use to control the synthesizer parameters.
Start using for free
What is the main feature?
Life in cells modulates synthesizer parameters
the main module is based on a discrete model of cellular automata. The foundation of this model is a space consisting of adjacent cells that form the "Universe." Each cell in the "Universe" can be alive, dead, immortal, or non-revivable. The size of the "Universe" is limited to 8 by 16 cells, but its borders are wrapped: the left side continues into the right, the top into the bottom, and vice versa. The eight cells surrounding each cell are called its "neighborhood".
"universe" module interface
The transition of cells from one state to another is determined by rules you define. These rules are the same for all cells. In one step, the automaton processes each cell and, based on its current state and the state of its "neighborhood", determines the new state that will be applied in the next generation. Before launching the automaton, you set the initial state of the cells manually or randomly.
Rules control sliders
For example, consider the rules of John Conway's "Game of Life," which in the "Universe" module are specified by the values of 3 for the "new" slider and 2 for the "keep" slider. Under these rules, "life" in an lonely cell disappears in the next generation since it lacks either three "neighbors" to give birth to new life or two "neighbors" to keep it.
First generation
Second generation
With two adjacent populated cells, the situation is similar: each of them has only one "neighbor", which does not meet the conditions for keeping life.
First generation
Second generation
However, with three adjacent populated cells, the situation changes. The central cell now has two "neighbors", which satisfies the condition for keeping life. The cells above and below the central one each have three "neighbors", which falls under the rule for new life generation. But the two cells at the ends of the original line have only one "neighbor", which is not enough either for keeping life or for new generation, so they die in the next generation.
First generation
Second generation
In the second generation, the situation repeats, because the new figure is identical to the first one, only rotated by 90 degrees. As a result, an oscillating figure is formed, known as a "blinker."
Third generation
Cell occupancy is measured in arbitrary parts of the "Universe." These parts are grouped into "Communes."
A commune of four cells is represented by light dots
Each "Commune" either reacts to the occupancy of any individual cell or interprets the occupancy density as a percentage.
None of the cells in the commune are occupied, the signal is 0%
One of the four cells in the commune is occupied, the signal is 25%
Two of the four cells in the commune are occupied, the signal is 50%
Three of the four cells in the commune are occupied, the signal is 75%
All four cells in the commune are occupied, the signal is 100%
To start using a "commune" signal for parameter modulation, press the "select" button under the "universe" cells, tap the desired cell, and use the orange slider to assign it to a "commune".
Commune selection slider
Then set the mode and adjust the attack and release parameters for that "commune". You can even clone the link from a configured "commune" to other cells by choosing "clone" under the "universe" cells and then tapping the cells you want.

Next, find a slider that supports modulation and select it for modulation setup with a long press.
Filter frequency slider selected for modulation adjustment
As soon as the inner circles of the slider selection indicator turn yellow, the modulation control sliders in the adjacent panel become active. The first lets you choose the signal of a previously configured commune as the modulation source, and the second sets the modulation depth for the selected slider.
Source and modulation depth sliders
Thus, the development of "life" in the "Universe" transforms into a "living" signal, which can control the parameters of other Cellular modules to make the sound "alive."
Video guides
Discover how to create and adjust sounds, fine-tune parameters, and get the most
If the video doesn’t cover everything you need, check the documentation. It has step-by-step guides, interface explanations, and detailed descriptions of every feature. It’s faster than guessing.
FAQ
Answers to popular questions
Most of the functionality is free, but some features are available only to those who support the project with a subscription or a one-time purchase, once this option becomes available.
This app wouldn’t be possible without my beloved wife Anna, who took care of everything from accounting to promotion. Huge thanks to my friend Pasha for helping test all the things I’ve come up with. And of course, special thanks to everyone who joined the beta test and shared feedback — your contribution is invaluable.