Aschinchon posted some R code on his blog recently to sonify / audiblize the journeys made by individual points in the Mandelbrot set. The world’s favourite squashed-bug fractal shape is made up from following the paths of each pixel on the screen. A simple formula dictates how the pixels jump around, and if they don’t leave the boundaries of the picture, then they are conventionally colored black, making the body and squishy bits of the bug. Yuk. If they fly off, then they get colored in depending on how many steps it took before they departed. So his idea is to take us on one of those journeys, and translate the successive steps into pitches, determined by their distance from the origin (L2 norm or length of the hypotenuse). Yes, it’s a boring old sine tone, but never mind, the content is worth it.

First, starting at the point (-1,0) produces a never-ending oscillation that reflects the point bouncing back and forth. Aschinchon calls it an ambulance siren sound; round here the classic ambulance and police nee-naw sound is a minor third, and the way it has been tuned, it comes out not far from that.

Ambulance siren (starting point -1 +0i)

Next, “slow divergence” is an example of a point just outside the bug, which bounces around for a long time, gradually settling down before zooming off never to return. This would be one of the colorful pixels in the swirly psychedelic zone.

Slow divergence (starting point -0.75 + 0.01i)

Finally, the highlight for me is “Feigenbaum point”, which is located at one of the self-similar zones on the Mandelbrot shape – check out the animation on Wikipedia – where zooming in or out will still produce the same pattern of influences. This is characteristic of transitions to chaos rather than stochasticity, you get a mixture of predictable and unpredictable elements. If you look at the graph below you’ll see it’s not exactly periodic, although there is a similar shape each time. The sonification really brings this to life! Click on any of these graphs to access Aschinchon’s WAV files.

Feigenbaum point (starting value -0.1528+1.0397i)

Ben Bolker added a comment linking to his work with duodecimal representations of pi mapped to a chromatic scale of 12 notes (you can probably guess my views on this), but also the logistic map (now I’m interested), which you can hear here; and hear hear!, I say, because it’s really interesting in two ways, one of which is (I suspect) really quite unexpected. The logistic map seen in the graph below has the same mix of predictable and unpredictable, because you get stable regions around 0.75 which just don’t happen in stochastic sequences. If you look at the maxima and minima you’ll see monotonic increases and decreases which are also too consistent to be random. What I really like here is that the sound brings out this detail in a way that you just don’t see in the graph; you can clearly hear the increasing pitches at the extremes of each oscillation, and the brief stable periods.

Logistic map (x[i+1] = 3.99 * x[i] * (1 – x[i]))

The aspect that surprised me was the percussive rhythmic ticking. I’m not sure where that came from as it is made entirely from sine waves in the audible range 220-440Hz (that’s A to A either side of middle C). I think it is from discontinuities where they butt up against one another. But serendipitously this suggests that having the pulse running through makes it easier to hear the patterns and attend to it with our full attention. It makes it more musical, in short. I wonder whether a de-glitched (and hence arrhythmic) version would be as easy to understand – it would be a good experiment.