Datamusic Fractal Music
Atari ST Software
Article from Music Technology, October 1991
Recently we looked at the theoretic applications of fractal maths in music. This month Ian Waugh composes a complex number with this ST software...
Recently we introduced you to the concept of using fractal maths to create music - Fractal Music is one of the first commercial programs allowing you to try it.
FRACTAL MUSIC HAS one main screen. Some features will be familiar to sequencer users - the track list down the left (there are 16 tracks), the Play and Stop buttons and tempo indicator above it. Actually, the Stop button is just for show as the mouse is disabled during playback for improved timing. You stop playback by pressing Return.
To the left of the Play button is the Fractate button, (more of which in a moment) and the rest of the screen is filled with horrendous-looking columns of numbers. Unfortunately, the headings of the columns are on their side so you have to tilt your head to read them. However, they aren't as cryptic as they first appear.
You can name tracks by clicking with both mouse buttons on the track name (why not a double click?). You can mute and solo tracks and a triangle appears on the right of a track to show when it contains data. Numbers appear here on playback to show how many notes are playing. Parameter values are decremented with a left click and incremented with a right one.
THE MIDI CHANNEL'S purpose is obvious I hope. The next six columns are grouped in three pairs - Loops 1 to 3 and How Many. The manual uses the analogy of a three-dimensional graph to describe these but I'm not sure this makes the concept any easier to understand.
The loops act rather like nested loops in a computer program (stay with it). Loop 1 is the innermost loop and you put a value in the How Many column to determine how many times it will loop or Fractate. If you give it a value of three, for example, it will Fractate three times (Fractation coming up).
Now, if you put a value in the How Many column belonging to Loop 2 (say five), it will cause Loop 1 to do its stuff five times which will produce 15 (5 x 3) Fractations. You can probably guess what the How Many column in Loop 3 does. It causes the other two loops to, er, loop according to the Loop 3 How Many value. If it was set to four we would get 60 (4 x 5 x 3) Fractations.
Each How Many column can take a value 1-99 so the total number of combinations is 99 x 99 x 99 or 970,299. The values in the Loop columns themselves determine the shape of the music - different numbers produce different Fractations - the number of variations is immense.
The manual explains that the three Loops were originally labelled Velocity, Pitch and Time as these are the parameters which are related to the result of a Fractation, but it adds that this isn't generally perceptible to the user so Loops won the day.
There's another column related to the Loops called Number Of Inner Loops, and this determines the number of times the inner loop, Loop 1, is repeated. This is actually the "iteration" process so essential to fractal construction (see MT, July '91). It's not the same as increasing the How Many value of Loop 1 - all to do with the maths of the thing. This column can take a value up to 999.
THERE'S ONE MORE concept to grasp: Version. You'll be pleased to hear that this is pretty easy. If we go back to the concept of a 3D graph and think of Time on the x axis, Pitch on the y axis and Velocity on the z axis (the one which runs at you out of the page) then we can see that any value can be positive or negative. Pitches and velocities can change in either direction (above or below the previous value). Time, as the manual points out, can only go forward. So the program cheats a bit. If a negative number is generated it's turned into a positive number and the note turned into a rest.
If Version is set to A, negative values become rests. If it's set to B the process is reversed - negative values are notes and positive values are rests. Version C turns all values into notes.
THAT'S THE MATHS out of the way. The rest is relatively straightforward. The Lower and Upper Pitch Limits are used to restrict the output to a certain pitch range. If a note is generated which would step over the limit it's reflected back into it. You can also set the starting pitch of the Fractation. Two tracks with identical sets of parameters but different starting notes will produce parallel harmonies - very effective.
Most of the numbers generated by the program tend to be less than one and have to be multiplied up to produce values which are meaningful to MIDI. The Pitch Expansion column can take values from zero to nine and determines the size of the multiplication.
A value of zero produces a single pitch (but with varying velocity values) which could be used to generate a drum line, for example. A setting of nine produces pitches which leap about from one end of the note limit to the other.
"Fractal Music's authors suggest that the program may give rise to copyright issues which are not covered by existing law - food for thought."
The four rightmost columns do for velocity what the previous four did for pitch. These are Lower Velocity Limit, Upper Velocity Limit, Starting Velocity and Velocity Expansion. As well as their "random" contribution to the music you can use them to create ppp or fff passages.
LET'S PUT TOGETHER the things we have so far and see what happens. Fractation is the process of generating the music. When you activate Fractation, each time the program "turns a loop" a note (or rest) is produced. You can Fractate any number of tracks simultaneously.
With exactly the same settings, exactly the same piece of music will be produced during each Fractation - the generation process isn't random, remember. Initially, it's probably a good idea to set the Loops 2 and 3 columns to one and experiment only with the parameters in Loop 1. Although the manual doesn't explain exactly what is happening you can figure it out with a little ear work.
Set the How Many value of Loop 1 to one and set the Number Of Inner Loops to one and the program will produce one or two notes or rests (the program actually produces one more event than the number of loops, but we won't let that throw us). Increase the Number Of Inner Loops to two, three, four and so on and the program will add an event (note or rest) for each addition to the loop.
Now, if you increase How Many to two you'll get the set of notes you've just heard followed by a second set of different notes as Loop 1 does another loop. This much is (relatively) easy to understand - especially if you try it - but if you work the other way round something different happens.
Set the Number Of Inner Loops to one and the How Many value of Loop 1 to one and you'll get the same two-event riff as before. Increasing the How Many value adds more events to the list although it will produce a different set of events to the previous ones.
If you increase the Number Of Inner Loops you'll get the same first couple of events but the following ones will be different. In fact, each time you add to the Number Of Inner Loops, the previously-generated events change. You may spot similarities in the rhythm and the directions in which the pitch moves but I wouldn't bet more than a pint on it, even after a couple of iterations.
So far we've only been experimenting with Loop 1. Add Loops 2 and 3 into the equation and you can imagine how complex the whole procedure can become. But there's more.
Some of the column headings are highlighted - Loops 1 to 3, Version, Start Pitch and Velocity, and Pitch and Velocity Expansion. These parameters can be randomised either manually by clicking on them with both mouse buttons or by the program by highlighting them. If they are highlighted, the program randomises them before Fractation.
IF YOU'RE STILL with me you'll be wondering what the output sounds like. We're not talking TOTP or any kind of mainstream here. It can sound very like modern classical music - avant garde some would call it. As much music of this ilk is composed using mathematical processes, perhaps it's not surprising.
To other listeners it may well sound like a collection of random pitches - but it's not. It can lack the harmonic and rhythmic structure our Western ears recognise but it does have a discernable form if you're sensible with the settings - Fractate all 16 tracks using different parameters and you guarantee chaos.
A Check Passes function shows the nested loops and how many times each track Fractates. Set all values to their maximum and at 120bpm the program would produce just under two month's worth of music. Theoretically, that is - you'd need far more RAM than the ST can support, and very understanding listeners. However, a more modest maximum of 50,000 passes (which requires 1Meg of RAM) generates about 80 minutes of monophonic music. Scale according to required polyphony.
FRACTAL MUSIC CAN handle MIDI files so you can export your Fractations to a conventional sequencer for further work. It can also load MIDI Files and this is where things really start to get interesting.
In the Edit menu you'll see the following functions: Quantise, Stretch/Move, Invert, Retrograde, Retrograde/Invert, Other Reflections and Rotate. You can apply these to "conventional" music - and to fractated music, too.
Relative quantisation lets you quantise by note values - 1/8 is a quaver, 1/16 is a semiquaver. You can also quantise to values in between by setting the denominator to any value 2-96 - 1/7, 1/13, 1/87 and so on. Absolute quantisation lets you specify the quantise value in clock ticks - 2-384.
Stretch/Move can move a track forwards or backwards in time, transpose it and stretch or compress it. You can move it in increments of a single tick. Among other effects, you can use this to produce echoes. You can perform straightforward transposition but you can also specify the amount of transposition as a ratio, say 3:2 or even 124:29. This has the effect of compressing or expanding the pitches into a smaller or greater range. The music will retain the direction of movement but the pitches will be different.
"Fractal Music is on the other side of the musical playing field to M, not quite so far over as Fingers and hovering around somewhere near Ludwig."
Stretching and Compressing a track also works with ratios. The program tries to push and pull from the centre of the piece so if you compressed it to half its size (effectively making it play twice as fast) it wouldn't start playing immediately but a quarter of the way through. Obviously, if you stretch it and the track already starts at the beginning, the stretched version would start at the beginning, too.
Invert spins a track around a central pivot point, effectively turning it upside down. Inversion has been used by composers for centuries. This Invert lets you select the high and low note limits and the pivot point. It uses a box to show where the track sits in the scheme of your inversion. As we aren't doing anything particularly horrendous to the pitches and their relation to each other, this can produce very musical (to Western ears) output.
Composers have been turning music backwards for years, too. This is what Retrograde does and this, too, can sound very musical.
Retro/Invert performs the two functions in one fell swoop although, to pre-empt those who try it, the manual admits the result is not exactly the same. But it's close and if you want exact you can perform the two functions separately.
IF YOU THINK about it - and I'm not forcing you to do so at this stage - inversion is a reflection of 180 degrees around a horizontal axis, retrograde is a reflection of 180 degrees around a vertical axis and retrograde inversion is a rotation around 180 degrees. The Other Reflections and Rotate options let you reflect and rotate about any angle.
This can get a little hairy, and I confess I couldn't even attempt an explanation without some diagrams (a picture is worth a thousand words and all that), but the manual does have diagrams and you can see what happens to the music during these reflections and rotations. The program, again, shows the music as a box and as you alter the reflection angle the box turns to, um, reflect this.
One of the outcomes of this type of operation is that the notes may overlap so you can get polyphonic music from a monophonic input. Think about it (yes, now's thinking time) - if you take a music score (or a display from a grid editor) in which the notes are strung out one after the other from left to right (the time domain) and then rotate it so the notes now run from bottom to top (the pitch domain), you're squeezing all those notes into a smaller time span.
Enough of the theory. Musical mathematicians will find it fascinating. Certain reflections and rotations will produce musical output but many won't.
THE MANUAL IS very friendly and not without its humour - and it has an index, too. The authors are aware of the potential complexity of some of the operations as is demonstrated when they say: "After all that, you'll no doubt listen to the result and then go looking for a 12-bore and our address".
There are keyboard alternatives for just about everything and some functions can only be performed from the keyboard.
THE READ.ME FILE on disk makes a very interesting and valid point concerning music which is generated through Fractal Music. It is easy in the extreme to take a piece of music and process it beyond recognition into something completely different. This is very easily and ably demonstrated on a little Bach.
The authors point out that to pass this off as your own is, at best, morally dubious and that copyright should remain the property of the original composer. They suggest that Fractal Music may give rise to copyright issues which are not covered by existing law.
Food for thought there, although I suspect it would only be the legal profession who would make any money out of a case.
FRACTAL MUSIC IS fascinating. I'm tempted to say that if you work in the mainstream it is not for you. In fact, I feel the authors would agree but some of the edit options such as retrograde and reflection can produce musical results which the more adventurous mainstream musician might like to explore.
Talking of Western musical expectation, I'm sure the program could be adapted to work around conventional divisions of the beat, tonal centres and possibly harmonies which would produce more "melodic" output. Just a thought.
But that's not the main purpose of the program. Its purpose is to generate music based on mathematical processes and that's exactly what it does. As such, it's on the other side of the musical playing field to M, not quite so far over as Fingers and hovering around somewhere near Ludwig. And for a composition program it is surprisingly easy to operate - honest - in spite of the mathematics behind it.
If you like the idea of computer (assisted) composition then you'll find Fractal Music very interesting. If you're into modern composition you'll love it. If you fit into either category - or are just plain curious - then send Datamusic a fiver for a demo disk.
Price Fractal Music £65 plus £2.50 p&p.
More from Datamusic, (Contact Details).
Review by Ian Waugh
mu:zines is the result of thousands of hours of effort, and will require many thousands more going forward to reach our goals of getting all this content online.
If you value this resource, you can support this project - it really helps!