Music Generation Tech Demo

This code demonstrates several techniques for generating procedural music using cellular automata.

Cellular automata are sets of rules that describe how binary cells in a space evolve over time. A common example of cellular automata is Conway's Game of Life. The automata used in these demos are variations of Wolfram's Rules in a limited space with random and timed re-seeding.

The demo features three separate automata. The rightmost automata controls the length of each note - the highest-order bit in the string is the type of the note (eighth, quarter, etc). The center automata is read as a binary number and used to select chords from a predefined list. The leftmost automata chooses which notes are actually played from the chord, cell-by-cell.

This project was inspired by a lecture by Michael Matthews and Kojiro Umezaki at UCI.

This example piece uses chords from the Star Wars theme to generate a tune:

Cellular automata music screenshot

Permissions

This code is provided free of charge for commercial and noncommercial use. No warranty of fitness for any purpose, express or implied, is given.

Download

Source and Binary (C++)