Out of the Blue

date: July 15, 2019

In January 2019, I collaborated with my wife, choreographer Renay Aumiller, to create a modern dance piece called Out of the Blue. I wrote a program that prompted the audience to contribute a list of body parts and dance qualities, and then fed that creative input into an algorithm to randomly generate a series of short dance vignettes.

Each vignette featured a body part and a movement idea contributed by the audience, as well as a short piece of music to accompany the music. Renay improvised modern dance movement on top of this, to sometimes poignant or comedic effect.

I composed the musical backdrops in Alda and my program cross-faded them dynamically based on the randomly generated length of each vignette (30-90 seconds). For this recorded version, each backdrop is played for 30 seconds before cross-fading into the next.









Here is the Alda source code for each backdrop, accompanied by some notes about my creative process. Hopefully you’ll find it interesting!

I employed a little trick to inspire myself as I was composing most of these musical scenes. I wrote a program that picked 2 or 3 instruments at random and played randomly chosen notes on those instruments. The results weren’t usable out-of-the-box, but every few runs of the program, an interesting combination of instruments would occur by accident, and that inspired me to see what interesting musical ideas I could come up with using those instruments.

01

Backdrop #1 is super simple, just a long, low G on strings, punctuated regularly with timpani hits. I think it has on overall feeling of “medieval suspense”. I thought this was interesting enough as-is, and moved onto the next backdrop.

(tempo! 85) md = (vol 80) lg = (vol 100) midi-timpani: (panning 90) o2 md g8 %downbeat [ lg g2.. o1 md g8 lg g2.. o2 md g8 ]*99 midi-string-ensemble-2: (panning 10) (volume 60) (quant 99) o1 @downbeat g1~1~1~1 *99

02

For Backdrop #2, I took the output of one of the runs of my score generator program and I used it almost as-is.

The generator emitted two instrument parts, a kalimba and a music box. I played up the percussive sound of the kalimba by creating an artificial delay effect; I added three more kalimbas and had them play the same notes, spaced apart from one another in 250ms intervals, and added progressive levels of panning and volume decay. I think it kind of sounds like a ping-pong ball falling down the stairs into the basement.

(key-sig! [:e :flat :locrian]) kphrase = o2 f2397ms o3 d2598ms o3 d2638ms o3 g1949ms mbphrase = o2 e875ms o2 e1044ms o2 c2667ms o3 e2939ms o1 e659ms midi-kalimba "mk1": (panning 50) kphrase * 100 midi-kalimba "mk2": (panning 60) (vol 75) r250ms kphrase * 100 midi-kalimba "mk3": (panning 70) (vol 50) r500ms kphrase * 100 midi-kalimba "mk4": (panning 80) (vol 25) r750ms kphrase * 100 midi-music-box: (panning 6) mbphrase * 100

03

My generator happened to pick a MIDI ocean wave sound (the General MIDI spec includes a number of other goofy sounds like a gunshot, a telephone ringing, etc.), so I composed something simple and relaxing to accompany the sound of the waves.

A celeste outlining an A minor pentatonic cluster (A - C - D - E - G) seemed to do the trick. I had the celeste wait 10 seconds, then play the same thing, shifted down a note within the context of A minor (G - B - C - D - F). Then I just kept doing that, working my way down the scale. Boom, backdrop done. Next!

midi-seashore: (vol 70) (pan 20) o0 c150s midi-celesta: (tempo 100) (vol 50) (pan 95) [ r10s o4 a8 > c d e g2. r10s o4 g8 b > c d f2. r10s o4 f8 a b > c e2. r10s o4 e8 g a b > d2. r10s o4 d8 f g a > c2. r10s o4 c8 e f g b2. ]*99

04

The inspiration generator gave me a helicopter sound and pizzicato strings next. Challenge accepted! I wrote some inline Clojure code to generate sequences of D notes moving up in octaves (D1, D2, D3, D4, D5), separated by random-length pauses. I think the result sounds like the score to a movie scene where a spy is infiltrating a military base or something.

(defn random-pause [] (pause (duration (ms (rand-nth (range 300 4000)))))) (defn pizz-sequence [] (for [octave-number (range 1 5)] [(octave octave-number) (note (pitch :d) (duration (ms 1000))) (random-pause)])) (defn heli-sequence [] [(random-pause) (note (pitch :c) (duration (ms (rand-nth (range 3000 10000)))))]) midi-pizzicato-strings: (pan 30) (repeatedly 99 pizz-sequence) midi-helicopter: (pan 100) (vol 50) o0 (repeatedly 99 heli-sequence)

05

For Backdrop #5, I imagined that I was playing some simple arpeggios on a clean electric guitar. I think GM instrument #101 (“FX 5 (brightness)”) is intended to be played in a higher register, but it ended up sounding pretty neat as a bass, sort of like a more electronic-sounding bowed upright bass.

(tempo! 90) midi-electric-guitar-jazz: (quant 400) (pan 0) (vol 75) [ o3 [ c8 e g b > e < b g e ]*4 o2 [ a8 > e g b > e < b g e < ]*4 o3 [ c8 f g > c e c < g f ]*4 ]*99 midi-fx-brightness: [ o2 c1~1~1~1 o1 a1~1~1~1 o1 f1~1~1~1 ]*99

06

I think I must have been channeling VGM composer Nobuo Uematsu when I wrote Backdrop #6.

It’s always fun to play with changing chords while keeping the bass note the same. In this case, the bass guitar plays a steady stream of B quarter notes, while the electric piano plays a different chord every 4 measures (Bm7 - G7 - Cmaj7 - Bm7).

midi-pizzicato-strings: (pan 10) (vol 70) [ r1 *4 [ o6 g16 d < b g f+ d < b g f+2 | r1 ]*2 [ o6 g16 d < b g f d < b g f2 | r1 ]*2 [ o6 e16 c < b g e d c < b g2 | r1 ]*2 [ o6 d16 c < b g f+ d < b f+ d2 | r1 ]*2 ]*99 midi-electric-piano-2: (pan 90) (vol 60) (quant 150) [ r1 *4 [ r1 o3 b1/>d/f+/a ]*2 [ r1 o3 b1/>d/f/g ]*2 [ r1 o3 b1/>c/e/g ]*2 [ r1 o3 a1/b/>d/f+ ]*2 ]*99 electric-bass: o1 b4 *999 midi-percussion: o2 c4 *999

07

This backdrop starts with a piano alternating between Gmaj7 and Dmaj7. I added a second piano that plays exactly the same thing, but softer and panned differently, creating a nice echo effect, as if you’re standing in a cathedral and the sound from the piano is bouncing off of the back of the room.

The chord voicings I chose happened to have 5 notes in them, so I thought it would be interesting to arpeggiate the chords from top to bottom in quintuplets. This has an especially dreamy effect with the artificial echo.

(tempo! 150) pianoPart1 = [ (quant 90) [ [ o2 g4/>d/g/b/>f+ ] *16 [ o2 d4/a/>d/f+/>c+ ] *16 ]*4 ] pianoPart2 = [ (quant 400) [ {o4 f+ < b g d < g}2 *8 {o4 c+ < f+ d < a d}2 *8 ]*2 ] pianoPart = [ pianoPart1 pianoPart2 ]*20 midi-electric-grand-piano "echo": (vol 80) (pan 25) pianoPart midi-bright-acoustic-piano "main": (vol 50) (pan 100) r8 pianoPart midi-synth-bass-2: (quant 100) [ # pianoPart1 unaccompanied r1~1~1~1 *4 # pianoPart1 with this accompaniment [ [ o1 g2.. > d8 a1 ]*2 [ o1 d2.. > f+8 > c+1 ]*2 ]*2 # pianoPart2 unaccompanied r1~1~1~1 *4 ]* 20

08

Backdrop #8 is conceptually simple, but fun to listen to. There are 8 voices, each playing a randomly generated sequence of pizzicato notes with random-length pauses. It starts with only one voice doing this, and then every 10 seconds a new voice enters. The result is that over time, the music becomes progressively more dense and chaotic, like the sound of popcorn popping in the microwave.