Fractal Music

1998 - 1999 Research Project.

Contents:

  1. Introduction to Fractal Music
    1. What is Fractal Music?
    2. How is Fractal Music Made?
    3. What does Fractal Music Sound Like?
  2. Music from L-Systems
    1. Intro to L-Systems
    2. Strings of Notes
    3. Chord Progressions
    4. Turtlegraphics Approach
  3. Music from Fractal Motion
    1. White, Brown, and Pink Noise
    2. Midpoint Displacement
    3. Random Cuts
  4. The Midi File Format
  5. Bibliography / Thanks

Music Downloads


Introduction to Fractal Music

What is Fractal Music?

Fractal music is one slice of the study of fractals in general. 'Fractal' is the name given to images, landscapes, sounds, and any other pattern that is self-similar in nature, that is, if you look at one small part, no matter how small, you get a sense of the whole picture.

The possibility of using fractal methods to create music was first mentioned upon the discovery that all music, regardless of culture, followed the patterns of fractal motion or 'pink noise.' Pink noise is somewhere in between white noise (complete chaos, far too disorderly to be considered musical) and brown noise (very orderly, and too dull to sound like music). Thus, the question arose: if fractal methods produce pink noise, and all music resembles pink noise, is it possible to produce music using fractal methods?

This question is the focus of our research.

How is Fractal Music Made?

We used two basic methods to create our fractal music.

The first method is called L-Systems. To briefly describe L-Systems, they create the self-similarity of fractals, starting with a short string of symbols and replacing the symbols with corresponding rules (which are their own strings of symbols that can be replaced). The symbols are then interpreted as notes, chords, and several other things.

The second method involves Fractal Motion. Fractal motion (pink noise) is generated with various random number methods, starting with a straight line and repeatedly altering portions of the line.

These are only brief descriptions of our methods. The daring can learn more by reading further.

What does Fractal Music Sound Like?

The fractal music methods we have used produce a wide variety of songs. Many of our pieces follow the conventions of Western music, but that is only due to constraints we placed on them to add an air of familiarity to our tunes. In several of our pieces, the keen ear can detect some repeated themes and self-similarity inherent in the music.

We did experiment as to what methods and what parameters sounded the best, especially with the fractal motion method. Our findings were that music with a fractal dimension near 1.4 sounded the best (the fractal dimension is a measure of how close to white or brown noise the fractal is). The authors' personal favorite tunes are those generated by the single note L-Systems and the chord progression L-Systems.


L-Systems

Introduction to L-Systems

An L-System is a recursive method of generating long strings of symbols from a short initial string (or axiom) and a set of production rules--one for each symbol considered in the system. From here, we generate longer strings by replacing each symbol with its respective rule, and repeat this process until we have a string of a desired length.

Here is a simple example:

Axiom: A B

Production Rules:

Start out with the axiom, "A B". After one iteration, the string would become "A B C C A D". Now, we would use the same production rules with this new string. It becomes "A B C C A D D C D C A B C B D B". The results of L-Systems are characterized by repeated themes and self-similarity. L-Systems tend to grow fast, so a small number of iterations is usually sufficient.

After we have generated some data, the next step is to interpret that data as music, which we did in the following three ways:

Strings of Notes

The most straightforward interpretation is to assign each symbol directly to its corresponding note on the musical staff -- "A" to A, "B" to B, etc., as well as throwing some extra symbols in such as "R" for a rest. Our above string of letters would become this:

Variations on this method include assigning each of the letters to a percussion instrument. To pick our axioms and production rules, we resorted to spelling out words and pulling short excerpts from human-composed pieces.

Chord Progressions

Another interpretation of the L-System strings is as a chord progression... consider this following system.

Axiom: I

Production Rules:

After two iterations, this produces a chord progression:

I IV V I IV V I ii V I ii V I IV V I

This method is not very effective when used alone, but is excellent when used in conjunction with other methods, either as background chords or to further constrain melodies to give them more of a traditional Western music feel.

Turtle Graphics

In the Turtle Graphics interpretation, there are four basic symbols, "F", "f", "+", and "-". Instead of being assigned directly to notes or chords, they are interpreted as instructions to "draw" a melody. In the traditional visual interpretation, these control a virtual "turtle" holding a pencil. The commands mean "Move forward one unit, and draw a line", "Move forward one unit, but don"t draw a line", "turn d degrees to your left", and "turn d degrees to your right", respectively. The result is a picture like the one at right.

In our musical interpretation, horizontal motion was seen as note length, while vertical motion was seen as change in pitch. The above drawing would be interpreted like this:

This method also had its variations, such as a "trill next note" command as well as a system of marking pitches and returning to that pitch at a later time.


Fractal Motion

White Noise

White noise consists of random values the entire distance across. It is of f 0.

Pink Noise

Pink noise is between brown noise and white noise, and is closest to the differences in music patterns, and can be generated by various fractal methods. It is of f -1.

Brown Noise

Brown noise is a "random walk." Each point is displaced a Gaussian (distributed) random amount from the previous point. It is of f -2.

Midpoint Displacement

One method of Brownian motion generation is called random midpoint displacement. This is done by taking the middle of a line segment and randomly displacing it up or down, then each of the line segments made by the displacement are taken in half and displaced by a random amount. This is repeated as far as possible to create Brownian motion.

Random Cuts

This method of Brownian motion generation is called the random cuts method. A random point is picked in the line, and half of the line segment from that point is displaced by a random amount. The more cuts that are made, the better the approximation to Brownian motion.


The Midi File Format

MIDI stands for musical instrument digital interface. It was designed to produce a synthesizer on personal computers, and has made much progress in quality since its beginning. MIDI is essentially a format of sheet music, which a PC sound card interprets.

The Midi data is all stored in one file, chronologically.

Here is an example of how the data is put in a midi file:

Time to Wait Command Parameters
0 ms Turn on note Play key of middle C fairly loud
400 ms Turn note off Turn off key middle C

These two commands together will play a note of C for 400 ms. When translated to data for the computer in base 16, these 2 lines look like this:

  0 90 63 70
400 90 63  0

Bibliography / Special Thanks

The authors would like to thank the following people and resources who assisted in our research:


Music Downloads

Download the entire collection in .ZIP format (43K)