For this assignment, I gathered a few recordings (listed below) and created a short musical statement by manipulating the sounds in ChucK.

Music created from sounds I recorded then manipulated.

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

Algorithms

To create the snoring/drone sound in the beginning of the piece, I used the sound of Marley’s purring and modulated the rate of the audio playback over time.

To generate complex rhythms, I implemented a first-order Markov chain to determine how long to wait between rhythmic events based on the previous event. I generalized this in ./lib/MarkovChain.ck, and it is being used in the MarkovPercussionPlayer class.

The last effect worth noting is the use of the Karplus Strong algorithm in generating a string-like effect using the unpleasant lawn mower sound. Because the lawn mower sound is so static and spectrally dense it allows the comb filter to really become noticeable.

Sounds

The sounds were all recorded using my hand-held Zoom stereo audio recorder. They can all be found within the ./sounds directory

All code can be downloaded here:

Colin-Sullivan_220b_hw2.tar.gz

To download and build:

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

Bash

To run:

To play the piece:

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