Home -> Magazines -> Issues -> Articles in this issue -> View
Fractal Music Software | |
Software for the Atari STArticle from Music Technology, November 1992 |
Music by design?
Is there a place for mathematics in your music? Need a little chaos in your compositions? It could be time to get Fractal...
{Note, this article seems to be a reprint of the review from MT Oct 91, with a different first paragraph and minor changes and what look like incorrect screenshots. I can't find any errata about this from later issues, so I'm guessing this was some kind of error in the magazine production.}
Music has always had strong links with mathematics and many composers have experimented with the creation of music based on mathematical principles. It seems natural, therefore, that the relatively new science of fractals (born in the late seventies) and their fascinating combination of seemingly contradictory elements of repetitive form and randomness should also be pressed into service, too.
Fractal Music (review version 2.3) was devised and written by Chris Sansom and Laurence Glazier. Chris is a composer and has had several works published and performed. Laurence provided much of the input during the development of the program.
It will run in hi or medium resolution and with half a Meg of RAM - but that leaves little memory to work with, so one Meg is recommended. The licensing agreement seems pretty horrendous and states that the software and manual remains the property of Datamusic although you are allowed to make a backup (How very public spirited of them - Ed). The disk comes with your own User ID encoded in a file. Tamper with this and the program won't run.
The manual begins with a short tutorial which runs through the basic operating procedure but doesn't take you very far into the program - that's left up to the rest of the manual and a little judicious experimenting.
Fractal Music has one main screen, certain features of which will be familiar to sequencer users - the track list down the left-hand side (there are 16 altogether) and the Play & Stop buttons and tempo indicator above it. Actually, the Stop button is only there for show as the mouse is disabled during playback for improved timing. You stop playback by pressing Return. Rather more mysterious is the Fractate button - just to the left of Play - but more about this in a moment.
The rest of the screen is filled with horrendous-looking columns of numbers - the headings for which appear on their sides so you have to tilt your head to read them. Nothing, however, is as cryptic as it may at first appear.
You can name the tracks by clicking with both mouse buttons on the track name (wouldn't a double click with the left button have been more obvious?) and also mute and solo them. A triangle appears on the right of a track to indicate that it contains data, and numbers are also displayed on playback to show how many notes are actually being played. Parameter values are decremented with the left button and incremented with the right.
Okay, let's look at the columns. MIDI Channel is obvious - I hope, 'cause that's as easy as it gets! 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. I confess that I'm not sure this makes the concept any easier to understand, unless, perhaps, you're into 3D modelling. However, the loops act in a manner rather like nested loops in a computer program (...stay with it). Loop 1 is the innermost one and requires an entry in the How Many column to determine how many times it will loop or Fractate.
Now, if you put a value in the How Many column belonging to Loop 2 - say five - this will cause Loop 1 to do its stuff five times, which will produce 5 x 3 or 15 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 4 x 5 x 3 - or 60 Fractations.
Each How Many column can be given a value from 1 to 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 - so you can see that the number of variations is immense.
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. It can take a value up to 999. It's actually to do the 'iteration' process so essential to fractal construction (see MT July '91).
Right, time to grasp one more concept - Version. 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 (going above or below the previous value).
Time, of course, 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 is turned into a rest. Now, if Version is set to 'A', negative values become rests. If it is set to 'B', the process is reversed - negative values become notes and positive values become rests. Version C turns all values into notes so effectively you get a continuous stream of them. Well, that's the mathematics 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 is 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 which can be 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 multiplication factor. A value of zero will produce 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.
"We're not talking TOTP or any kind of mainstream music here, but it can sound very like modern classical work - avant garde some would call it"
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.
Okay, let's put things together 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 work it out with a little judicious 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.
"It is easy to take a piece of music and process it beyond recognition into something completely different. This is very convincingly demonstrated with a little Bach. But as the authors point out, to pass this off as your own is, at best, morally dubious"
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 look for, but it does have a form and this is discernible if you're sensible with the settings - Fractate all 16 tracks using different parameters and you can 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 120 bpm) 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 a very understanding audience! However, a more modest maximum of 50,000 passes (which would require one Meg of RAM) will generate 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 from 2 to 96 - 1/7, 1/13, 1/87 and so on. Absolute quantisation lets you specify the quantise value in clock ticks - from 2 to 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 and, among other effects, use this to produce echoes. It's possible to 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.
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 about 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, but in its form here, 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 output (to Western ears).
Composers have been turning music backwards for years, too. This is what Retrograde does and it 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 it to be exact you can always perform the two functions separately.
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.
Datamusic Fractal Music - Atari ST Software
(MT Oct 91)
Browse category: Software: Algorythmic > Datamusic
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!
New issues that have been donated or scanned for us this month.
All donations and support are gratefully appreciated - thank you.
Do you have any of these magazine issues?
If so, and you can donate, lend or scan them to help complete our archive, please get in touch via the Contribute page - thanks!