USING DSPSOUND ARCHIVESHARE
 
TEACHERS RESOURCES // TEXTS AND WEBSITES // DOWNLOAD // ABOUT DSP // ABOUT NOTAM

Algorithmic Composition

Can a computer make music? Not by itself, of course. But it can be an exciting tool to use in making music...

Sequencing techniques are used in techno and other types of popular music, where the notes are not played by live musicians but are typed into a computer program and played perfectly by a machine. This has revolutionalized music genres, and quite a bit of music we hear today has been made this way.

This technique is actually nothing more than a digital music box. What music comes out is whatever the composer has put into it, note by note. The sequence is the same time after time and the machine serves as an obedient and exact translator of its master's musical inventions. It never surprises, in both a positive and a negative sense. Popular music has often used computers in this way.

In art music, where the definition of music is more open, there has been a greater curiosity about the sounds themselves. Composers have worked since the 1950s to develop software that enables the computer to become an almost "independent partner" in the composition process, a kind of musical assistant robot. A number of exciting experiments have been conducted in recent decades that are grouped under the common term algorithmic composition.

Algo-what?
The word algorithm means something like a recipe or an approach. A number of things to do, or a set of rules to follow in order to achieve a result.

If you want to make waffles, for example, you would follow a waffle algorithm that would look something like this:

1. Mix 1/2 cup flour, 2 eggs, 3/4 cup milk and a dash of salt.
2. Set a timer and let the batter rest for 30 minutes.
3. When the timer rings, turn on the waffle iron.
4. Wait a while.
5. If the waffle iron is hot, proceed to step 6. If not return to step 4.
6. Pour some batter in the waffle iron and close.
7. Wait a while.
8. If the waffle is brown enough, proceed to step 9. If not, return to step 7.
9. Place the waffle on a wire rack.
10. If there is more batter return to step 6. If not continue to step11.
11. Turn off the waffle iron.
12. Eat waffles (this can probably be done without algorithms).

This may seem rather complicated and long-winded. However, if you think about it, this is precisely what happens in your head when you make waffles, even though you aren't consciously aware of every thought. A computer must have each detail fed to it, it cannot think one single individual thought. Absolutely all computer programs you use, from the most simple word processing software to the most complex computer game, consist exclusively of algorithms that resemble the waffle algorithm. Of course it is not written in English, but in a language that the computer understands, a programming language.

A game such as Checkers or Monopoly has a set of rules - or algorithms - that everyone must follow so that it will be fun to play. Dice are needed as well. A computer game also has a set of algorithms, where a programmer has "taught" the computer a set of rules by writing it in a programming language. But instead of a set of dice the computer uses a random generator. This "super dice" may have, for example, 98724728374 sides or 14 sides of different sizes - or maybe it just has six identical sides like a regular dice!

An Example
In collaboration with NOTAM in 1994, I developed a kind of musical computer game called "Yo," for which we made the control suit that is shown in the picture.


By touching different places on the control suit with the metal conductors on my fingers, I could control the computer like you manouver in a computer game with a joystick, mouse or keyboard, only with many more simultaneous possibilities. The difference between "Yo" and a normal computer game is that one moves in a musical virtual landscape instead of in a visual landscape. The raw material for this sound landscape is nothing but my own voice. In this way I can "sing" just by touching my body! If you click here, you can listen to the sound file that served as the raw material for the music examples that follow.

From this short recorded sound, I can make many minutes of music by touching the long black stripes on the suit. The basic algorithm has two variables, x and y:

0. Play x number milliseconds (ms) of the sound file from the beginning.
1. Play x number ms of sound file, but begin y ms from the start.
2. Play x number ms of sound file. Begin y * 2 ms from the start.
3. Play x number ms of sound file. Begin y * 3 ms from the start.
4. Play x number ms of sound file. Begin y * 4 ms from the start.
etc.
etc.

In this way, the machine steps through the soundfile, and the sound unfolds slowly. In the algorithm, there are two unknowns, x and y. If you click here you can hear an example where x and y are large, so the sounds are quite long.

But both x and y can change over time, and in this example the sound snippets are very short in the beginning, gradually growing to be longer. Click to hear.

Each of the stripes on the suit has a special control function, something like the brake, gas pedal and steering wheel in a car. One stripe allows me to determine the size of x, another the size of y, and the other stripes control other functions. One stripe lets me move directly to any place in the sound file and the algorithm continues by itself from there. Here is a small example of what it sounds like when all of these three functions are working at the same time. Click here to listen.

"Yo" is not a piece of music or a composition in the usual sense because it never sounds the same twice. When I perform it, I am often surprised about what the computer "makes up" along the way. It is almost eerie to have such an active partner, especially when you know that it only consists of electrical circuits!