Sound of Life Plugin
Close
This is a demo that my friend Andrew Ramsey made with an earlier prototype of the plugin. Andrew uses two instances of the plugin, each connected to Spitfire LABS instruments, along with Ableton's MIDI mapping capabilities which create a harmonious cloud of sound, controlled by the Game of Life.

Project Description

Disclaimer: This project is a work in progress, please excuse the awkward GUI.

The goal of this project is to make a MIDI Plugin that connects the principles of John Conway's 'Game of Life' with sound.

I thought this would be a fun contender for a MIDI Plugin, as it allows users to mess around with the Game of Life as a source for movement in the tones created, but also allows them to connect it to whichever MIDI instrument or output that they want.

The plugin shows an 8x8 grid of cells, the cells can be either 'on' or 'off'. They can be switched by using the mouse or using the randomise button, and then you can trigger generations which obey the Game of Life's rules (checking the number of 'on' neighbours that a cell has in order to determine whether it should be on or off in the next generation). Each cell in the grid is assigned a MIDI note number, and when the cell turns on it sends a note on message, and when the cell turns off it sends a note off message.

In order to make the grid activity more lively, I've set it up so that the grid is effectively stitched together at all sides - so that the cells on the right most side are considered directly next to the cells on the left most side and the top is considered next to the bottom as well. This avoids the issue of the cells simply 'crawling' off the grid and making no more sound. Since the sides are stitched together, the activity is more concentrated and famous perpetual patterns in the Game of Life such as the glider are actually perpetual rather than just moving until they are off the screen .

A gif of the Sound of Life plugin. It shows the grid changing according to the rules of the Game of Life, firstly with the famous Glider preset which is a known pattern that will 
              go on forever in the game of life, and then with the user interacting with the mouse and randomising the grid.


The user is given control for:
  • Auto Mode - when on, the generations trigger at a set frequency, when off they have to be manually triggered by the user.
  • Interval - the frequency at which the next generations trigger when the plugin is in 'Auto' mode.
  • Tempo Sync - when this is on and the plugin is in 'Auto' mode, the generations will be triggered by the beats of the DAWs tempo.
  • Velocity - this sets the velocity of the MIDI notes. Planning to develop this to a range setting where note velocities will be set randomly from a range
  • Accept MIDI Note Off Input - when this is off, any MIDI notes that the user inputs to the plugin, for example via a MIDI keyboard, will be used to set the associated cells 'on' but will not turn the cells off when the note 'off' message is received. This is so that the MIDI input can be a way of giving the grid more cells to interact with, whilst still allowing the Game of Life rules to be the way in which the notes turn off. If this is set to on then the MIDI input device can turn cells off as well when a note is released.
The preset dropdown at the top of the plugin purposefully only saves the grid state to the preset. This way users can swap between presets on the go whilst triggering generations without worrying about settings like velocity or the interval changing.
A gif of the Sound of Life plugin. It shows the user cycling through the various presets of well known Game of Life patterns 
              such as the 'Beacon', the 'Glider' and the 'Spinner'. The plugin is in auto mode and we see that the generations continue to generate uninterupted whilst the user cycles through the presets and the 
              user values such as velocity and interval are not changed by the preset.
You can view the code and fork the repo yourself on my GitHub.