cellular automata - algorithmic composition max/msp patch using 1-dimentional binary cellular automata CA

   ALGORITHMIC COMPOSITION: CELLULAR AUTOMATA

This page deals with the CELLULAR AUTOMATA patches created for the Human/Computer Collaboration module. A small set of Max algorithmic compositional patches that use 1-dimentional binary cellular automata (1D CA) to produce real-time compositions guided by the user. Each patch uses a different CA mapping method to turn the binary cells of an automaton into MIDI note data.

If you are new to CA, feel free to download chapters 1 & 2 of my dissertation on Cellular Automata in Music; an easy-to-follow technical background of CA or look at the HOW CA WORKS page.

These 1D_CA patches were developed during the 3rd year of my degree; as research for my dissertation, and for the Human/Computer Collaboration module. See also my soft-synth page for synthesis methods using CA.

CA HOW IT WORKS Page
CA DISSERTATION (Ch.1&2)
CELLULAR AUTOMATA DOC
     NAVIGATION     

1-1-1_HOME        LOCI_HOME        MAX_HOME       ADDER-PAD
HUM/COMP
SYNTHESIS
NEW-PROJECTS
  DOWNLOADS

—«o: 1D CA (CA Simulation) :o»—

CA_SIMULATION_v1 Interface

—«o: 1D CA (Simulator v2) :o»—

CA_SIMULATION_v1 Interface - for CA image, data & movie export

—«o: CA PATTERN-FOLLOW PATCH :o»—

CA_PATTERN-FOLLOW: CA Composition using pattern-finding analysis of stored 1D CA

—«o: CA BIT-MAPPING :o»—

CA_BIT-MAPPING: Diagram of how cells are mapped to binary numbers from the centre outward

—«o: CA PATTERN-FOLLOW DETAILS :o»—

CA_PATTERN-FOLLOW (sections): Example sections from the PATTERN-FOLLOW patch

—«o: ABOUT CELLULAR AUTOMATA :o»—

  BRIEF EXPLANATION OF CA

CA (Cellular Automata) are algorithmic simulations based on transition-rules, effective with each tick of the simulations clock. These rules determine the values held in discrete cells within the automaton, based on the current values of their neighbouring cells. Over time, the automaton produces complex patterns & behaviours that are analogous to aspects of life, and of intellectual creativity.

CA are used extensively in modeling the behaviours of physical materials, such as fluids, gases, and energy propagations, as well as chemical reactions and.... Music!

  Link: more info on how CA works

  GOING BEYOND THE BASICS

Those who are interested in this sort of mathematical simulation will be delighted to know that (though not covered in my projects), there are many ways of implementing CA beyond the 1-D Binary CA I use in my sound & composition algorithms.

Multi-value CA of multiple dimensions, using larger influencial neighbourhoods are very possible; and also can be used in the production of algorithmic synthesis & composition.

Some great resources for fabulous work in cellular automata (in creative & purely mathematical/scientific realms) can be found by following these links:

The above sources have themselves a remarkably wide variety of links to further reading on this deep & fascinating subject. Cellular Automata is well worth a look if you are interested in algorithmic & evolutionary composition.

Some further Cellular Automata protagonists worth investigating include Matrin Supper, Peter Beyls, Ernest Edmunds, Jaques Chareyron, Dave Millen, Paul Reiners, and John Walker (who together with Rudy Rucker brought us the Cellab 2D CA software.

—«o: THE VARIOUS PATCHES & MAPPINGS :o»—

CA: PIANO-ROLL Mapping

  PIANO-ROLL MAPPING

The piano-roll mapping method is considered the simplest, and works like the old pianola method of 'holes punched in rolls of piano scores'; where the positions of the holes, or in the case of 1D CA, the live cells, determine the keys to be played.

In the diagram, all cells correspond to white-notes - a way of ensuring that all notes produced will belong to a particular key.

There are drawbacks to this mapping method, as thick clusters of notes occurr too often to sound like a true compositional style, and can be quite unpleasant; especially when using a chromatic output.

I have not use the piano-roll mapping method in my compositional patches, but have experimented with this method in additive synthesis (see CA_ADDER page for details).

  BIT-VALUE MAPPING

Another common way of creating musical data from binary CA is to read groups of cells as binary numbers. This is often carried out by reading cells from the centre of the simulation, and to 'zig-zag' outward, so as not to favour one side of the simulation (See BIT-MAPPING illustration in the right-hand column for a visual representation of the cell ordering of this method, and the note-values gathered from a simulation).

Using 7-bit values (7 cells per 0-127 value), the full range of MIDI pitches can be covered, or smaller cell-groups can be used for smaller data ranges; such as 5-cells, which will cover over 21/2 octaves of chromatic data, or 4 octaves using an 8-note scale. (of course velocity, duration & other note-data can also be mapped.

  INFO: Right-bias & left-bias indicates in which direction the zig-zagging starts

—«o: PATTERN ANALYSIS FOR MUSIC :o»—

  PATTERN-FOLLOW METHOD

Another method I have used extensively in my compositions, (but feel there is a lot more that can be achieved with), is in PATTERN-FOLLOW mapping - using defined cell-patterns in the CA output to work as 'flags' for notes; using their position to define the note's pitch.

My patch, using this method, reads stored CA information, pre-recorded from another patch.

An illustration of the main sections from the CA PATTERN-FOLLOW patch can be seen in the right-hand column; showing interfaces from the analysis, data display, & the MIDI output patch areas.

  PATTERN ANALYSIS SECTION

The top section of the diagram (to the right) shows a bar-graph of the current CA row, as the transition rules that are being employed (0-7). It is patterns in these values that are analysed, looking for matches to a user-defined group of values (corresponding to a cell configuration in the CA simulation)

The user-defined pattern can be entered as a string of digits; chosen from a menu object (in the MIDI output interface), or, selected using the rslider (range selector) object under the bar-graph.

  AUTOMATED PATTERN ANALYSIS

The 'display' interface section (white screen area showing a pattern) allows for an automated pattern search of the stored CA data, based on a example row, and an amount of digits. The example row (stipulated by its time-step in the CA data recording) is used to set up patterns, which it will then search for throughout the rest of the data; the digits parameter stipulates the length of the patterns it will try to match.

All the matched patterns are then stored, ready to be accessed by the user. The large orange numberbox can then be used to access these patterns (in the order they were found). In the example diagram, the fifth pattern from the example row that had matches elsewhere in the CA data has been selected; the distribution of these matches is then presented in the screen below, with time flowing downward from the top of the screen, and pitch on the X-axis going low-to-high, from left-to-right.

When you like the look of a particular pattern, you can assign the patterns numbers to an output channel by clicking the SEND button.

  MIDI OUTPUT SECTION

By sending the patterns numbers that you have found through the analysis (or by selecting a range from the PATTERN-ANALYSIS graph; or choosing from the menu), The corresponding pitches will be sent through the output as the stored data is played. At this point you can choose:

This way, a whole composition, including a large instrumentation can be composed algorithmically from a single secion of stored CA data. By choosing instruments that suit the attributes of the analysed patterns, and by intervening in realtime (by stipulating key, offset-harmonies, bringing instrument channels in and out, and restricting their note ranges to suit the piece), a true creative HUMAN/COMPUTER COLLABORATION can be acheived!

—«o: CA MEDIA PLAYER :o»—

—«o: DOWNLOADS :o»—

  DOWNLOAD FILES

CA DISSERTATION
(Chapters I & II)

(Word File - click to view)
CELLULAR AUTOMATA DOC
(Powerpoint File)
(click to view)
 
MORE TO COME! REAL SOON!

Please note: STANDALONE versions are PLATFORM SPECIFIC. WINDOWS ONLY - sorry! Though Collectives should work on Mac too. Other versions are also available on the DOWNLOADS page)



Back to top of page