MAX4LIFE Device for Ableton Live

 

“MAX4LIFE” (not “Max4Live”!) is a Max MIDI Instrument for Ableton Live based on the famous “Conway’s Game of Life” Algorithm (see for example http://www.math.com/students/wonders/life/life.html). 

 

Here is an example of life iterations taken from the matrix section of the Max4Life User Interface: 

 

Basic explanation of the Algorithm:

  • There is a N x N cells matrix (24 x 24 in this case)
  • Every single cell can be alive (with something painted in it, like a grey dot in this case) or dead (empty).
  • The algorithm takes a look at every single cell starting from the first one (top left) and ending with the last one (bottom right), one row after another, repeating this "scan" forever.
  • If a cell is dead, the algorithm makes it ALIVE if its neighbourhood is not so crowded or not so empty.
  • If the cell is alive,  the algorithm makes it DEAD if its neighbourhood is too crowded or too empty.
  • "Neighbourhood" means: the 8 cells around the current one.
  • "Crowded" and "empty" mean: 2 or 3 cells out of the total of 8 around the current one.
  • The algorithm would (kind of) simulate the evolution of a community of individuals in the simple N x N matrix-world.
  • The evolution (given an initial configuration of cells) can turn out to be: never-ending, doomed to die (all cells empty), forever-looping a final configuration of cells.
  • MAX4LIFE accepts random initial configurations, or manually-drawn ones.
  • Please note that "special" initial configurations of cells exist. The most famous is "The Glider". Forever-looping configurations are musically very interesting as arpeggiators-sequencers. Take a look at the fourth and fifth clips at the end of this Article.
  • Take a look at http://www.conwaylife.com for amazing and complex configurations.

 

MAX4LIFE goals are:

  • to generate automated music
  • to be nonetheless "playable" by a human musician through:
    • the run-time tweaking of its parameters
    • the real-time use of its MIDI output 
    • the use of effects on its audio output. 

 

 

MAX4LIFE generates (or not) a MIDI note for each cell at each iteration following these rules:

  1. If the cell is unmodified (from the previous iteration), then no note is generated
  2. If the cell becomes alive, then the note described below is generated
  3. If the cell dies, then a note-off (related to the point #2 note-on) is generated.

 

The note is calculated following these rules:

  • A “BaseNote” value is always present at any time. The initial value is 32. This value can be modified run-time via MIDI. If no such input is given, the value remains equal to 32 forever.
  • There are (so far) four modes (“NoteMode” parameter):
    • NoteMode=0: X and Y are added to BaseNote
    • NoteMode=1: X and Y are added to or subtracted from BaseNote at 50% probability
    • NoteMode=2: A minor 3rd (rounded 1 octave up) and a 6th (rounded 2 octaves down) are added to BaseNote, but a 10% probability remains of having notes in NoteMode=0
    • NoteMode=3: A minor 3rd and a 6th (both rounded 1 octave up) are added to BaseNote, but a 10% probability remains of having notes in NoteMode=0.

 

Velocity (so far) is always calculated from a base value of 56. X and Y are added to or subtracted  from 56 at 50% probability.

 

Notes output can be fine-tuned using the "Normal"/"Delayed" buttons and the “Flush/Delay Ticks” parameters (which are locked to Ableton transport as well):

  • If "Normal" is clicked, then MIDI output is performed “as is” (the matrix recalculation is performed at the speed given by the "RecalcTick" parameter (which is locked to Ableton transport as well)
  • If "Delayed" is clicked, then MIDI output is enqueued by the “pipe” Max Object, using the Delay Tick value itself to trig the pipe timeout and the Flush Tick to flush the pipe.

 

The initial Life configuration can be generated randomly, with: 

  • a crowd factor managed by the “InitCrowd” parameter
  • a timeout to automatically fire the next  initial Life configuration (“InitTick” parameter)

or can be manually entered in the matrix itself when InitCrowd=0.

 

 

Musical suggestions - Parameters tweaking

  • NoteMode=0 wanders towards high-pitched notes
  • NoteMode=1 is more balanced, but sometimes too low-pitched
  • NoteMode=2 eases the atonal feeling (with the 6th note as bass)
  • NoteMode=3 eases the atonal feeling (with the minor 3d and 6th in the same octave).
  • "Normal" causes a “subsequent-bursts” output . Can be heavy on the performance side.
  • Increasing DelayTick slows down rhythm.
  • Mixing Flush/Delay Ticks and RecalcTick produces different rhythms.
  • Initial configuration higher crowd factor usually leads to longer Life evolution process, which means longer music evolution before ending up to a looping or fixed Life Final configuration, which again means forever-looping music or silence.
  • Setting a timeout for automatically fire a new initial configuration means forever-lasting music evolution,

 

Musical suggestions - Other Devices and more

  • Use a “Pitch” MIDI Effect after MAX4LIFE, according to your musical tastes, to the combined run-time use of the above parameters and to Life evolution.
  • Use a “Note Length” MIDI Effect after MAX4LIFE. Shorter notes are suited for percussive/sequenced sounds, longer notes are suited for pads sounds,
  • Experiment with a “Velocity” MIDI Effect too.
  • MAX4LIFE musical output is (beautifully) atonal by definition. Use some “Scale” MIDI Effects after MAX4LIFE to filter only the desired notes.
  • Use some MIDI Monitor in the chain. Seeing the notes bursts helps understand how music evolves.
  • MAX4LIFE can be used as a Sequencer, in many ways:
    • with some “Scale” MIDI Effects it becomes tonal (as stated above), and it can follow notes played on a keyboard
    • using GameOfLife looping configuration (see video below).

 

Musical suggestions - Sounds

  • Heavy arpeggiated or sequenced patches can be very dangerous from a performance point of view.
  • Strings, pads and slow moving synths needs their own mix of parameters to play well (expecially DelayTick and the “Note Length” MIDI Effect), and more or less the opposite do percussive, arpeggiated, rhythmic and fast moving patches.
  • Consider using Instruments Racks in the Track where MAX4LIFE is, as well as instruments in other Tracks. See the example below: 

 

 

Listen/See: 

  

 

Last but not least: bigger Life!

A device containing only a much bigger cells matrix is available, in the form of a stand-alone Mac App receiving UDP data from MAX4LIFE.

Alternatively, the "Big Life" image button opens the big matrix locally.

This is useful for live gigs (a big screen for the audience for example) or for pure self-enjoinment.