If the word "fractal" rings a bell at all, it probably brings to mind those ornate, colorful computer-generated images that began populating screen savers and calendars some years ago. As it happens, fractals are also found all over the place in nature (more on that later), and those slick computer graphics are just one of many things you can do with them. I was curious about what a fractal would sound like, so I decided to experiment a bit.

What Is a Fractal?

The word "fractal" refers to a type of shape with certain characteristics, one of the most notable being self-similarity with respect to scale. Or, to put it another way, you can zoom in to a tiny bit of it and see the same patterns you see when you look at the whole thing. The Sierpinski Triangle is a good shape to demonstrate this.

Sierpinski Triangle

See how the top section looks just like the whole thing, only smaller? Well it follows from that that the top section of the top section is also just like the whole thing, and the very tiniest top section that's so small you can't even see it right now also has just as much detail as the whole thing–you could (in principle) zoom in forever in certain spots and never run out of triangles.

Rendering

Of course, if you download this particular image and keep zooming in, it won't go on forever–it has a finite number of pixels, and once you get down to those, you can't go any farther. That's because the image is just a rendering of the Sierpinski Triangle, which is an abstract shape–but really, the same is true of a circle. A perfect circle has no straight lines or corners, but zoom in to the pixel level on any digital image that has a circle in it and you'll see the round-off there too. This is the nature of digital media, and is the same sort of round-off you get when you record sound digitally–get a high enough sampling rate and bit depth and the the round-off will be inaudible to human ears, but if there wasn't some round-off you wouldn't be able to put the recording on your hard drive.

This seems like an annoying detail (and it is), but it's important to understand that "idealized" shapes (such as circles, Sierpinski Triangles, and sinewaves) have to be rendered into concrete media for us to see or hear them, and there are choices and involved in the rendering process–such as how much (or how many) of the shape we use, and how we scale it. This is especially important for fractals, which in a sense have an infinite amount of detail which cannot be fully expressed in any single rendering. This seems like a limitation, but can actually be an advantage in that once you understand the rendering process, you can use it to tailor things (like duration and frequency bandwidth) to the specific purpose you have in mind. (In the visual realm, many totally different images can be generated from the same set of equations by zooming in on specific areas–you might be astonished to discover how many of those fractal pics are just parts of the Mandelbrot Set.)

Section of Mandelbrot Set

Brush-Up on Sound Principles

As musicians, we're used to thinking in terms of parameters like pitch, rhythm, timbre, and so on, but any time you open up a waveform editor it becomes clear that sound can also be expressed as a strictly two-dimensional medium. A single channel of sound is a change in air density (Y) over time (X). All these other parameters are certainly there, but they're extrapolated by our ears and brains. One of the ways these parameters are separated is by time scale–when we hear something 120 times a minute that's a rhythm (or perhaps more accurately, a tempo). When we hear it 120 times a second it's a pitch. (Remember the sound of a baseball card poking out into the spokes of a bicycle wheel? You can hear a single snap on its own, but once the bike gets moving the snaps come fast enough that you start hearing the series of snaps as one sound, with the speed of the bike determining its pitch.) Timbre is usually quantified using the overtones of a given pitch, but you can also think of it as the exact shape of a periodic (i.e., pitched) waveform. So the relationship between timbre and pitch is similar to the relationship between rhythm and tempo–pitch/tempo is a measurement of how long the cycle is, and timbre/rhythm describes the shape of the thing that happens each cycle.

The First Audio Rendering

I made two decisions early on–first, that I would create uncompressed .wav files using C programs to ensure that I had sample-level control over the resulting sounds, and second, that it would be best to start small and go step by step. The smallest fractal I could find is called the Cantor Set. This is a "dust" of points created by removing the middle third of a line segment, then removing the middle thirds of the two remaining segments, then the middle thirds of the four remaining segments, and so on. (see figure below.)

Cantor Set

This was rendered by creating impulses (samples with a high value) at each point in the dust, and silence (samples with a value of zero) everywhere else. The resulting sound is not exceptionally engaging on first listening, but it works as a proof-of-concept.

You can hear the rhythm, but then notice that each "sound" has a sort of flam preceding it, and really each flam has a flam, so that the timbre of the "sounds" are determined by the same shape which is also heard as rhythm.

Digital Baseball Cards

The Cantor Set is okay, but for a sound file it's got an awful lot of silence. I tried coming up with patterns that were more continuous, and happened upon one that seems to play around the cusp of our pitch-rhythm perception, kind of like baseball cards stuck to dozens of different wheels all spinning at different speeds. Some samples you hear as individual slaps, some you hear as buzzes, and a lot seem to hover around the borderline. (Try to copy or transcribe the rhythm and you'll see what I mean.)

Being a bit frustrated with the fact that up to this point all of the experiments had been monaural, I also revisited the Cantor Set and created a variant with a continuous, stereophonic sound.

Fractals In Nature

Benoit Mandelbrot Benoit Mandelbrot, the man who coined the term "fractal," was interested in mathematics, but found fractals to be particularly compelling because they are so abundant in the natural world. River forks, coastlines, mountain ridges, leaf veins, and clouds all exhibit fractal structures. (Think about a photograph of a mountain peak. If there's nothing else in the photograph to give you a sense of scale, is there any way you'd be able to tell whether you were looking at a 200 foot stretch or a 2,000 foot stretch?) It seems to be a sort of inherent graininess in nature. I suspect that the inherent graininess of acoustic sounds are part of this.

Consider a clarinet and a triangle wave. Both have similar overtones, but the sound of a real clarinet is much more dynamic, and not just during the attack. In addition to the performer's tendency to crescendo or decrescendo, slight variations in breath pressure, irregularities in the reed or wood grain, and pockets of turbulence within the clarinet's air column produce a sound which is subtly changing all the time, giving it a "warmth" that digital oscillators lack. We can of course get more mileage out of digital sounds with LFOs and various effects, but the fact that we need to go to such lengths to keep synths from sounding flat or sterile compared to acoustic instruments seems to indicate that there's more going on in the acoustic world than is immediately apparent. Computer-generated fractals may be a way of augmenting digital sounds with the dynamism we like so much in acoustic sounds.

What Next?

In the hopes of generating something more interesting than an auditory screensaver, I encourage you to think of these not as finished "pieces," but as new additions to your sample library to play around with. Load them into your synths, convolve them with other sounds, use them as control data to modulate other signals. Invert, resample, tweak, and repeat. If you're inspired to make your own fractal renderings from scratch, the code to make them is relatively simple (I used C, but that's not your only option), or you might even cook up one with your favorite sound editor. Follow your ears, and have fun!