Rethinking the Weather

Jen Carlile

March 17, 2005
Music 220B Final Project

I was sitting on the sand amongst the seaweed and driftwood at San Gregorio beach a while back, listening to the waves and the gulls, watching the sun as it slowly dropped below the horizon. The sky was a palette of light and dark blue-greys mixed with bright pink and purple bands parallel to the sea. Have you ever seen the green flash? my friend asked me. no, I replied.

I suppose I spend a lot of time looking at the clouds and the sky, especially when I'm feeling contemplative. I guess somebody noticed, because for christmas this year I found Peterson's Clouds and Weather Field Guide under the tree. Complete with pictures and descriptions, I learned all about cirrus, stratus, altostratus, cumulonimbus, stratocumulus, fair-weather cumulus, noctilucent, lenticular altocumulus clouds, and even the green flash of the setting sun.

I didn't relate the clouds to music until a recent conversation with a classmate—isn't granular synthesis reminiscent of the tiny particles in the atmosphere that make for stunning sunsets? With this in mind, I turned to the clouds for inspiration for my final project.

Rethinking the Weather (a title borrowed from
Daedelus) is a stereo piece using a physical model of the piano along with field recordings I made during a thunderstrom in Stockholm out of my apartment window. Different types of clouds are created from spatially and frequency clustered piano notes, with each cloud type having a different feel— fair-weather cumulus 'clouds' are fairly compact with a narrow spatial and frequency range, whereas altostratus 'clouds' sparsely fill the entire sonic space.

The code isn't particularly clever or tricky, but I think it's quite nice to read. Most of my functions look something like:

(defun cumulonimbus (startTime numNotes duration amp startPitch degree &key(df 1/2) (thunder nil) (numThunder 1)(thunderAmp 0.7))

....(cumuluscongestus startTime numNotes duration amp startPitch degree :df df)
....(if thunder
..........(thunder1 (+ startTime 2.5) thunderAmp :degree degree :num numThunder)
..........(thunder2 (+ startTime 4) thunderAmp :degree degree :num numThunder))) )

If you're interested in learning about clouds, I included a brief description of each cloud type before its function definition in my lisp code like:

Cumulonimbus is the most energetic of all the cumulus, or heap family. It is made up of many thousands of individual convection cells. The top penetrates above the freezing level, where water droplets are transformed into ice crystals. Heavy downpours of rain fall from the base of cumulonimbus clouds. In some conditions the precipitation may be in the form of the ice balls we call hail. In other conditions, lightning with consequent thunder, discharges from cloud to ground or from cloud to cloud

My source code can be found
A stereo mix can be found here

You will need to compile and load both
piano.ins and cut.ins before running my code
You will also need to download and extract these

In the future, I would like to use spatialization more in this piece, placing clouds in different parts of the room. I also need to explore the physical piano model more to isolate why I am getting some clipping in certain parts of the piece.