Mirror Tempo – Brief Analysis

I took a top-down approach in composing Mirror Tempo. I had a musical idea I wanted to hear electronically and wrote codes to realize it. The idea was to create a mirror image of an accelerating ostinato. Since a reflection is an identical but reversed image, the mirrored sound could have a reversed melody and tempo. The perfect mirrored sound should start and finish at the same time as the original, even though one is getting faster while the other is getting slower. The resulting combination should be palindromic. It was difficult to imagine it. I had to write specific instructions to hear the idea.

The following paragraphs analyze the form, code, and musical aspirations in making Mirror Tempo Bell. It teaches how to start and progress a composition from a single synthesized sound. Readers’ learning is most effective when SuperCollider is installed on their computers. Please watch a tutorial video on how to run SuperCollider codes written for Dot Zip, the album in which Mirror Tempo was included.    

Form

The diagram below summarizes Mirror Tempo’s formal structure. 

  • Step 1: SuperCollider creates a simple percussive sound
  • Step 2: SuperCollider generates a motif for the first part
  • Step 3: The motif is reversed for the second part
  • Step 4: The first part repeats the melody many times, starting with a tempo A and ending with a tempo B. The number of repetitions, the number of steps, is the user’s choice
  • Step 5: The second part repeats the reversed melody with a reversed starting and ending tempo (tempo B to tempo A). The total length is the same as its counterpart. The pitch is shifted one octave higher for clarity
  • Step 6: While the two ostinati are playing at the same time, add a bass note by randomly choosing a note in the motif
  • Step 7: Repeat Steps 4 to 6 a few times.

In the diagram above, an ostinato of [C, Bb, E, Ab, Gb] repeats many times, and the tempo gradually changes from BPM 80 to BPM 134. The retrograde ostinato [Gb, Ab, E, Bb, C] plays with the exact same number of notes as its counter melody but moves from BPM 134 to BPM 80. Meanwhile, a long bass tone is created by randomly picking a note from the motif. 

Code

Before using the provided code, watch a tutorial video on how to use the code. Downloadable MirrorTempol_DotZip.scd is included in the DotZip package. MirrorTempo_DotZip.scd has the following sections.
SynthDef(“TheSound”) creates the sound described in Step 1. The code creates a sound with a randomized number of harmonics with a percussive amplitude envelope.

The motif described in Step 2 is written as a list of half steps from a set key in MIDI note number. The key of the piece and the motive are coded as the following array.

~key=58;
~motif=[0,2,4,6,8,10,12]+~key;

Then, the motif is randomized with .scramble (Step 3) and reversed with .reverse method for the sounds described in Step 4 and Step 5. The related codes look as below

pitch=~motif.scramble;
pitch.reverse.wrapAt(count)+12

The function ~mirror creates the repeating melodies described in Step 4, Step 5, and Step 6 using Routine. It is usable by inputting a number of notes using the motif, starting BPM, and ending BPM.

~mirror.(size,bpm1,bpm2);

The mirror tempi are created using Array.interpolation. The gradual change of tempo with flexible length is made with the following.

formula=60/(Array.interpolation(size,bpm1,bpm2)); 

Next, the variable formula and its retrograde (formula.reverse) are assigned to .wait method in two Routine functions.

formula.at(count).wait;
formula.reverse.at(count).wait;

Lastly, the realization to sound is done with another Routine.

Routine({
	3.do{
		~mirror.(rrand(100,120),rrand(400,600),rrand(50,200),
			rrand(0.03,0.05),rrand(0.5,2.0),rrand(-1.0,1.0));
		rrand(7,10.0).wait;
	};
}).play;

In this Routine, ~mirror is generated three times with 7-10 second intervals. Each repetition is unique due to the random number generators used in the parameters of ~mirror.

Top-Down and Bottom-Up Composition

The tools used in electronic music composition (DAW, Max, SuperCollider, etc.) motivate users to try their features. These features sometimes intrigue the user, who explores them further and makes music to share the discovery and joy. That is a valid approach in electronic music composition, but it is not the only way. It is important to learn the tools well enough so that the composer can use the tools’ features to realize what’s in their head.