With his discovery of fractals, Benoit Mandelbrot introduced a new class of mathematical models and a new branch of mathematical science. He may have stimulated a new branch of music as well. A growing number of composers have shown interest in the musical application of fractals. "Fractal Mountains" represents my own first attempt to integrate fractal techniques into interactive performance and composition.
A significant feature of fractals is their self-similarity. Consider the coastline of an island. On a map we see seemingly random curves that have been shaped by the elements of nature. If we look closer we see that, with magnification, smaller curves are similar in shape to the larger curves. Continuing the process of magnification to ever smaller snapshots reveals a unity that obtains to the very grains of sand on the island's beaches. The ramifications of such a process for the organization of musical form and structure seem almost overpowering.
Most of the practical literature on fractals is in the field of computer graphics with focus on the generation of realistic images for still pictures and animation. One of the simplest fractal models is the two dimensional outline of mountain ranges. Initially, we draw lines to represent the major peaks and valleys. These lines are subdivided by a recursive process to produce the next level of detail. When we continue subdivision through generations of ever shortening lines, an image emerges that reminds us of the patterns found in natural landscapes. Figure 1 illustrates the several layers of subdivision used in "Fractal Mountains" to arrive at pleasing melodic contours.
Musical sequences can be generated by mapping the meeting points of each pair of lines onto time and pitch. Each vertex represents the attack point of a note. A second fractal function is used to translate dynamics into MIDI key velocity. The durations of notes are set by another fractal function that shapes texture by controlling the number of notes that are sounding at once. To return to our island analogy, we are determining whether the beach is covered with rocks, pebbles, or fine sand.
Figure 1. Subdivision of lines to simulate mountain horizon.
The piece is performed on a Yamaha TX816 and a pair of EMU Proteus/1 synthesizers controlled by a Macintosh computer and a MIDI wind controller. The micro tonal pitch system in "Fractal Mountains" is achieved by dividing the octave into 96 equally tempered steps. MIDI channels 1-8 in the TX816 and Proteii are tuned in intervals of 12.5 cents by freezing the pitch bend wheel for each module at the beginning of the piece.
The numbers on the vertical axis of the graph are scaled to a range of six octaves and then rounded to the nearest eighth of a semitone. The whole number part determines what MIDI key will be pressed and the fractional part determines which of the eight channels will receive the note.
The harmonic shape in "Fractal Mountains" comes from the tendency of the fractal model to be attracted to particular numbers and thus to particular pitches and MIDI channels. The pull of these "strange attractors" is one of the most interesting feature of fractals. In music they produce a sense of tension and release that is appealing physically as well as esthetically. Phrases begin with most notes in a single channel. As the phrase progresses, the notes fan out among the eight channels and the richness of the micro tonal palette is revealed. Near the end of each phrase the notes move toward a different channel and cadence in relative consonance. The center of gravity is constantly changing.
Like the tuning system, the timbres are designed with a rich inner life. Voices vibrate and beat against other voices. Each tone color consists of a sustained sound that rises slowly from the beginnings of notes. At higher key velocities the onset of notes are punctuated by bell sounds. The timbres were constructed by interpolation between archetypes that were designed empirically. The resulting orchestra creates a "scale" of timbres with subtle variation from one end of a limited spectrum to the other.
The major features of this tonal landscape are controlled by notes played on a MIDI wind controller and by the time delay between those notes. The single notes from the soloist are passed through the Macintosh and translated into a multi-voice texture. Imagine that we are touching peaks and valleys on a blank canvas and that the mountains appear automatically.
More specifically, each note from the soloist is recorded by arrival time, pitch, and key velocity. Adjacent notes provide the endpoints of lines that represent the slopes of the mountain. The fractal algorithm constructs an accompaniment gesture that traces the space between a pair of points. A three-dimensional interpolation takes place in time, pitch, and loudness.
Some special rules of interaction between the soloist and accompaniment algorithm were found useful. Short time periods (< 400 milliseconds) between notes in the solo part overburdened the accompaniment algorithm and synthesizers and produced objectionably thick textures. Long time intervals (> 20 seconds) caused correspondingly long accompaniment gestures during which the soloist lost control over the evolution of the piece. These extreme time periods are ignored by the fractal algorithm.
In one version of "Fractal Mountains" I superimposed two ranges of mountains as illustrated in Figure 2. The ranges become lines in a monumental contrapuntal structure.
Figure 2. Mountains in counterpoint
The computer program for "Fractal Mountains" was written in C. These programs communicate with MOXC, a system for connecting the actions of the soloist to reactions by the accompanying synthesizers. MOXC is part of Roger Dannenberg's "MIDI Toolkit," public domain software available from the Center for Art and Technology at Carnegie Mellon University .
MOXC consists of a parser, an interpreter, and a scheduler. The parser receives signals from the MIDI Horn and informs the interpreter that musical events have occurred. In the interpreter, the composer writes programs that decide what these events mean and what reaction to trigger in the accompaniment. The reactions may be immediate or delayed for a period by passing them to the scheduler. The scheduler keeps track of pending events and executes each event when its delay period expires.