For this assignment, I brought together a variety of techniques to create some algorithmic music.

Music created from markov chains and FM synthesis.

Download:
.m4a (Apple Lossless)
.flac
.mp3
.ogg
.wav

Focus

I was primarily focused on two aspects of the piece:

Additionally, I implemented some high-level parameterization via some abstract classes I wrote last quarter for the KnacK framework1.

Implementation

The lead instrument, as well as the pitched kick-like sound, are both synthesized using a technique I read about in John Chowning’s FM synthesis paper2. This technique involved creating two different envelope shapes for the carrier and modulator waves, and relating the modulation index to the carrier’s frequency linearly.

The non-pitched percussion is composed of sounds that I have recorded at one time or another.

The ambient tones in the beginning and end of the piece are generated using Chuck’s BandedWG instrument.

For more detailed implementation information, see source files and comments. Main.ck is where the Score is defined.

All code can be downloaded here:

Colin-Sullivan_220b_hw3.tar.gz

To download and build:

wget https://ccrma.stanford.edu/~colinsul/220b/hw3/Colin-Sullivan_220b_hw3.tar.gz --no-check-certificate
tar xvzf Colin-Sullivan_220b_hw3.tar.gz
cd Colin-Sullivan_220b_hw3/

Bash

To run:

To play the piece:

chuck ./lib/vendor/KnacK/lib/import.ck:./lib/vendor/KnacK/lib/ ./import.ck