“MAX4LIFE” is a Max7 Standalone App based on
the famous “Conway’s Game of Life” Algorithm. Search the the many Web for info about the Algorithm itself.
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="addXY": X and Y are added to BaseNote
- NoteMode="add sub": X and Y are added to or subtracted from BaseNote at 50% probability
- NoteMode="6th-3rd-low": 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="6th-3rd": 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.
Notes and their velocities can also be modified in real time using manual number input.
- 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.
Notes are played using the default synth. MIDI input and MIDI output devices can be selected among the ones available. MIDI output can be easily sent to any DAW, to be processed and played through the DAW MIDI and Audio Effects.
See our site for technical details and musical suggestions.
Instructions for first run:
- MIDI Out: make sure that the default synth is selected
- Clock: make sure that "internal" is selected
- Make sure that "Sound" is set to 1
- Make sure that "normal" is selected in the "Matrix recalls start/stop and ticks" area
- In the same area, make sure that all three ticks' values are set to "4n"
- In the same area, click "Start"
The local Transport starts running, the Matrix starts showing life's evolution, a piano-chords-based music starts playing.
Clicking "Start" and decreasing "InitTick" in the "Init con bang and tick" area fires new random initial life configurations.
Switching from "normal" to "delayed" produces a single-notes-based music. Increase "Velocity" value to hear more notes. Increase the three ticks' values to speed up playing. Experiment with different values, triplet, dotted etc.
Switching the "Note Mode" from "addXY" to "6th-3rd-low" eases the atonal feeling of the generated music. Experiment with the four modes.