Recursive Harmonic Embellishment


by Carl

From a computer-theoretic viewpoint secondary embellishment in functional harmony is a context free grammar. This piece, composed mainly in May 2002, carries that notion to an extreme. By nesting the production rule x → (ii/x, V/x, I/x) a sequence of increasingly elaborate progressions of lengths 31,..., 37 are heard! More explicitly first the tonic I is heard then the progression ii, V, I, then its embellishment ii/ii, V/ii, I/ii, ii/V, V/V, I/V, ii/I, V/I, I/I, and then its embellishment ii/ii/ii, V/ii/ii, I/ii/ii, ii/V/ii, V/V/ii, I/V/ii, ii/I/ii, V/I/ii, I/I/ii, ii/ii/V, V/ii/V, I/ii/V, ii/V/V, V/V/V, I/V/V, ii/I/V, V/I/V, I/I/V, ii/ii/I, V/ii/I, I/ii/I, ii/V/I, V/V/I, I/V/I, ii/I/I, V/I/I, I/I/I, and then its embellishment and so on seven times. The process can be visualized as a branching tree as shown above but the complete tree would be seven levels deep and ultimately 37 = 2187 entries wide!

Excerpt from Score (measure 156)
Measure 156 of the piece, where the seventh, and final, level of embellishment begins.

One could call the resulting progressions self-similar or even more vaguely fractal, but I prefer the more precise language of context-free grammars. The progressions are realized through a simple model for jazz harmonies I built above a pitch model I call the helix of fifths, which is not equal-tempered! Rather, it is tuned in perfect ascending 3:2 ratios (cf. the brief paper). In fact my favorite part of the piece is at about 4:09, at the transition from the sixth to the seventh levels of embellishment, where there is an abrupt discontinuity in the tuning.

Recordings of the piece are available in several formats:

Creative Commons License
NOTA BENE: This work is licensed under a Creative Commons License, and is Copyright © 2002 by Carl . Please contact me if you would like either to create a derived work, or to use this piece for commercial purposes.

I have also prepared a 16-page traditional score in several formats with GNU LilyPond:

Although I primarily intended the score as a supplement to the electronic recording, please feel more than welcome to try to perform it. Let me know if you do! (It also demonstrates the helix’s power in generating traditional notation.)

The piece was produced by a custom program written in the purely functional programming language Haskell, and makes use of the xi operator (cf. the brief paper). This program produced a so-called score file, which was then rendered by CMIX with the strum instrument. The resulting audio file was then compressed with the programs oggenc, lame, and flac. All programs and tools used are free (e.g. gpl’d) software.

Copyright © 1999–2024 by Carl McTague (first dot last name at bc dot edu)