Back
Anamnesis
for Orchestra

Anamnesis, like many of my works, took a famous piece of music as its point of departure: in this case, the Allegretto from Beethoven's 7th Symphony. As usual, I extracted musical information from it in such a convoluted way that the new work bears little obvious relation to the original. Take a listen and see what you think:

(This recording is a rendering using sampled sounds. I hope to share a full reading or live performance in the near future.)

You an also check out the score here.

Dynamic Contour Decomposition

So what exactly was this convoluted process? Well, to start with, I extracted the dynamic contour from a recording of the Beethoven (Carlos Kleiber, Vienna Philharmonic Orchestra). This is essentially the same as what you would see when you open the file up in an audio editor, showing which parts are louder and which are quieter:

Dynamic Contour of the Allegretto from Beethoven's 7th
Dynamic contour of the Allegretto from Beethoven's 7th

I then took this dynamic contour and applied Fourier analysis to it. What Fourier analysis does is deconstruct the variation in something over time into a combination of simple (sine-wave) oscillations at different rates. Slow oscillations represent gradual motion, while fast oscillations represent quick or sudden motion. Usually the variation we are interested in contains both slow and fast motion, so Fourier analysis helps us to tease these kinds of motion apart.

Fourier Decomposition
Fourier Decomposition separates variation into faster- and slower-moving components.

I used the same process to decompose the dynamic contour of the Beethoven into a superposition of fast- and slow-moving undulations. Here are several of these extracted oscillation superimposed upon the original contour:

Beethoven Decomposition
Several oscillations extracted the Beethoven recording using Fourier Analysis.

You can see that the slow oscillations help to define the big swells, while the faster oscillations help to define more sudden crescendi. My next step was to orchestrate these swells among different instrumental groups. For instance, you can see in this score excerpt that at the beginning the violins are all playing short swells, while the celli (and bass clarinet) are starting a longer swell:

Opening string texture of Anamnesis
Opening string texture of Anamnesis, featuring small swells in the violins, and the beginning of a larger swell in the celli.

Through the magic of Fourier analysis and resynthesis, when all of these swells are superimposed on one another, we end up with a dynamic contour very similar to that of the original Beethoven. If we compare the waveform of the original Beethoven recording with that of the Anamnesis recording, they are strikingly similar:

Comparison of Beethoven and Anamnesis Waveforms
Comparison of Beethoven and Anamnesis waveforms. Note that one difference is that all of the sharp changes in dynamic in the original Beethoven have been smoothed over. This is because the superimposed swells cannot interfere destructively.

The purpose of this, as usual, was to create something new out of something old. I also figured that, since the dynamic shape of the original Beethoven was effective, it might lend some of that effectiveness to its reincarnation.

Harmonic Reversal

While the orchestration of Anamnesis was based on a deconstruction the dynamic contour, the harmony was based on an entirely different analytical process. It all started when I showed my Harmonic Visualizer to my colleague, Mason Hock. When I showed Mason the circle of fifths visualizer, he pointed out that really I should be including third-relationships as well. Ultimately this led us to a toroidal space, with a circle of fifths running left to right and a cycle of major thirds running top to bottom. (We later realized that this has been thought of already; it's called a Tonnetz.)

Anyway, I decided to write a program in which imaginary iron filings are scattered over this space and then are gravitationally attracted to the pitches present in a recording. Since I was working on Anamnesis, at the time, see what the Beethoven Allegretto looked like in this program:

Screen capture of my program visualizing the Beethoven Allegretto. Note that we are seeing multiple copies of the same pattern, since both the horizontal circle of fifths and the vertical cycle of thirds are cyclical.

Tonal music tends to look like this: the 'filings' congregate to a compact region of the space. Atonal music tends to look more diffuse, perhaps forming particular shapes based on the interval content of the music.

Mason then had a great idea: what if we reverse it, so that the notes push the filings away, rather than attracting them. The result was intriguing:

Screen capture of the same program, but with the filings repelled by, rather than attracted to the notes that are playing.

I then took this reversed harmonic pattern, and used it as the basis for the harmony in Anamnesis. At any given point in the piece, the pitch classes most prominent in Anamnesis would be the ones that had the most filings near them in the reversed visualization of the Beethoven. Again, the rationale here was that, since the original Beethoven had an effective harmonic trajectory, the reverse harmonic trajectory might also be effective, as well as novel.

The result of all of this a piece that takes inspiration from, and owes its existence to, Beethoven's masterpiece, and yet sounds nothing like it.

One more thing

I think it's important to note that the music generated by these algorithms was merely the starting point for the work you hear above. Once the basic material was generated, it took many months of chiseling away at and remolding it to get it to where I wanted it. I even copied down large swathes of it by hand on staff paper at one point, since it helped focus my attention on the counterpoint. This process of revision and reshaping is as important, if not more important, to the final product as all of the shenanigans noted above; it's just less interesting to talk about.