Skip to content

Commit 74d138c

Browse files
committed
New module CyclicCA
New module CyclicCA and minor fix to Clockkky
1 parent ec6cb20 commit 74d138c

File tree

11 files changed

+2747
-28
lines changed

11 files changed

+2747
-28
lines changed

README.md

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ Algoritmarte VCV Rack Modules
66
- [MusiFrog](#musifrog) : another musical sequence generator
77
- [Zefiro](#zefiro) : full synth inspired by the Buchla Music Easel
88
- [HoldMeTight](#holdmetight) : triple sample&hold and quantizer
9+
- [CyclicCA](#cyclicca) : cyclic cellular automata visualizer and sequencer
910

1011
Click here for [version history](#history).
1112

@@ -241,8 +242,45 @@ When there is no connection on the input a random voltage **between 0V and 1V**
241242

242243
![HoldMeTight](thumbHoldMeTight.png)
243244

245+
## <a name="cyclicca"></a>CyclicCA
246+
247+
The *CyclicCA* module is a [Cyclic Cellular Automata](https://en.wikipedia.org/wiki/Cyclic_cellular_automaton) simulator and visualizer. A cyclic cellular automaton (CCA) is defined as an automaton where each cell takes one of N states 0, 1,…, N-1 and a cell in state i changes to state i+1 mod N at the next time step if it has a neighbor that is in state i+1 mod N, otherwise it remains in state i at the next time step. Classically CCA are applied on the 2-dimensional integer lattice with Von Neumann neighborhoods (nearest 4 neighbors): if cell is at coordinate (x,y), the four neighbours are those at coordinates (x+1,y), (x-1,y), (x,y+1), (x,y-1). For further information see [this post](https://www.algoritmarte.com/cyclic-cellular-automata/) on AlgoritmArte site.
248+
249+
In VCV-Rack this module can be used both as a visualization tool in which some parameters can be changed during the performance and as a dual output CV generator that is tightly connected to the current shape of the automata.
250+
251+
In the module you can parameterize many aspects of the CCA:
252+
253+
- **States**: the number of states
254+
- the neighborhood (**Neighbors**) is used to evolve the cellular automata; the value of the four knobs define the neighbors of the central cell ( C ) according to the following schema:
255+
256+
![Neighbors](doc/cca_neighbors.png)
257+
258+
The highlighted cells (17,23,25,31) correspond to the Von Neumann neighborhood (and are the default of the module).
259+
260+
- **Size**: the size of the cells
261+
- **Speed**: the evolution speed
262+
263+
It is possible to add entropy to the current configuration placing random *blocks* of cells in random state using the **Block input/button**. The size of the random block can be controlled by the **Block knob** and its **Shape** can be changed between diamond and square.
264+
265+
The **Reset input/button** clears the automata and restarts from a random grid.
266+
267+
The **1 Rule input/button** change one of the 4 neighbors randomly.
268+
269+
The **Color sample input/button** can be used to change one of the colors (associated with the cell states). The color is created using the current values of the **Hue/Saturation/Lightness inputs**, or randomly if the corresponding input is not connected. The colors are changed in sequence.
270+
271+
The two **OUT1, OUT2 outputs** are set with the average sum of the states along two vertical lines of the grid (at 1/3 and 2/3 of the width) and are scaled in the range (-2V,2V). They can be used as pseudo-random control voltages.
272+
273+
274+
275+
![CyclicCA](thumbCyclicCA.png)
276+
277+
244278
# <a name="history"></a>History
245279

280+
## v1.5.0
281+
- added the **CyclicCA* module
282+
- fixed the save mode bug in Clockkky
283+
246284
## v1.4.0
247285
- added the *HoldMeTight* module
248286
- *Planetz*: added two switches to output the absolute values of the X/Y coordinates

doc/cca_neighbors.png

5.08 KB
Loading

0 commit comments

Comments
 (0)