Bifurcation

This piece is based on the logistic map, as simple recurrence relation given as:

x_{n+1} = rx_n (1-x_n)

The intent for this piece was to explore the map, which has some very interesting behavior as the r parameter is varied. Initially the x value quickly decreases back to 0, then more slowly and slowly, eventually starting to converge on numbers > 0 depending on the initial value x_0. Then, as r increases, the value of x begins oscillating between two (the bifurcation), and then more values. Around r>3.57, the value of x becomes chaotic, returning to oscillation briefly around r =3.83 and then returning to chaos, finally diverging to infinity beyond r=4. On the face, this seemed to hold plenty of potential for interesting musical structure – a slowly ascending pattern breaking into oscillation, bursting into chaos, briefly pulling back from the chaos, and finally diverging to infinity.

As always, much experimentation and many dead-ends, but here’s the final process that generated this piece:

I evaluated the logistic map for four steps (n = 1 through n =4), setting the first value x_0 = 0.5. This created a vertical “column” of numbers (in my scheme) between 0 and 1.

I still needed to set the r parameter to some value, so I evaluated across the interval [0,4] in steps of 0.01. I evaluated this in a spreadsheet (of course), always starting with x_0 = 0.5, evaluating for five steps, and varying the r parameter across columns, creating a large 5-by-401 grid of numbers, each within the interval [0,1].

Next, I evenly binned the numbers into 12 divisions. Each bin was assigned a pitch class starting with D and processing through descending fifths. So x<= \frac{1}{12} became D, \frac{1}{12}<x<={1}{6} became G, and so on.

Each sequence of notes for a given r was then assigned to a single measure. I dropped the initial value x_0 = 0.5 because having the same note start each measure was not very engaging, and it’s all the stuff that happens after the initial value that I was interested in. Now I had 401 measures of four pitch sequences.

Because the logistic map doesn’t get interesting until r>3.5 or so, I had a really long stretch of just the same note over and over. Which is how the function works. I suppose if I was true to the concept, I’d just trudge ahead, but intent overrode the generating function. I’m happy to get the aesthetic sense of a slowly evolving recurrence relation without having to sit through 100 bars of the same four-note sequence. I temporally “compressed” the repeated measures according to the somewhat arbitrary function m* = log_2(m), where m is the number of identical measures and m* is the “compressed” number of measures as played. 34 measures became 6, 11 measures became 4, etc.

If all of that was a bit dense, here is a nice color-coded visual of the piece:

Each color represents a pitch class.

Another change is that rather than play the same note, it’s bounced among octaves, and a constant rhythmic scheme is applied across the entire piece. Every four notes you move to a new r parameter. The articulation and dynamics were chosen based loosely on the behavior of the map in that region.

That’s pretty much it. Sheet music below. Enjoy!