FAQ - Fractal Tunes

Feel free to add more questions and answers. If you have a question which isn't answered here - for immediate help contact support@tunesmithy.co.uk - and you can also add it to the Questions Pending page.

Old version - auto converted FAQ - Fractal Tunes - auto

How do I make a fractal tune (tutorial)?
[#preamble Preamble], [#instruments Instruments], [#orchestration Orchestration], [#build_tune Build up a fractal tune one voice at a time], [#move_tune Moving the tune from one instrument to another, and hocketing], [#tuning Tuning]

Preamble
Fractal tunes belong to a genre known as Algo-comp  music. Some may already have experience of this type of music, but it will be new to many. So let's start with that. This section will assume nothing in the way of previous experinece of music making or composing, but I will try to keep it interesting for the more seasoned musicians and composers too. Perhaps that is possible since Algo-comp is new to nearly everyone including many seasoned composers.

Usually if one improvises or composes a piece of music, all the notes are decided in advance, or as you play - either way you decide every note you want to play. Even if you use music made out of repeating loops, as many do nowadays, though the way the loops interact may lead to surprises, still, every note of each loop is set individually by the composer.

In algo-comp though, all the notes of the tune are inter-related. Youi vary a parameter, and the entire tune will change. There are many types of fractal music - generated from the Mandelbrot set for instance - for some sites to visit to get an idea of the range of work that is done in this field, see the Thinks.com Fractal Music page. However, most of the tunes you make with Fractal Tune Smithy are based on the idea of a musical seed. So let's investigate those..

If you make something you particularly like in these exercises, save your results. You can do this using File | Save As  (Ctrl + A)  and you can save them in the New Tunes  folder. Either save using a name that will remind you of the music, or just save as tune 1, tune 2, or experiment 1, 2, or whatever. While working on the piece, you can save over the old version again at any time using Crl + S .

In our first exercise, we investigate the way in which the tune varies as you change the seed.

Select any tune from the drop list of fractal tunes. Now select another seed from the drop list of seeds. Notice how the entire tune changes - not just a single loop in one instrument, but the entire tune as played by all the instruments. Now try editing the numbers for the seed. Keep the first number as it is (usually 0) and change one of the other numbers. You can do this while the tune is still playing. Hear how the entire tune changes when you change a single note of the seed. You can also change the tune with mouse clicks rather than from the keyboard using Bs | Seed as bar charts .

As you will realise, this needs a new way of working. There is no way to change just a single note of a fractal tune in FTS. If you want to do that, save the fractal tune in Midi format, and then use the material as you please in a conventional sequencer - which some composers do indeed. Another way to use FTS is to play a favourite fractal tune until you hear a sequence you like and again, use that sequence in your pieces - maybe add a vocal part and other parts to it. Others just use some of the sequences of notes that emerge from the fractal tunes as inspriation for their pieces - this can be a useful method of melodic invention- maybe it could free up blocks to creativity too :-). Here though, we'll focus just on the process of making the fractal tunes themselves.

Fractal music work needs a much more experimentalist approach than other types of music making. Don't be afraid to just try out anything. After all it is easy to change things. If you do something that sounds particularly nice, save it for future reference and continue exploring. If you want to go back to a previous stage of the tune you are working on you can undo your changes using Ctrl + Z (repeatedly if necessary) and redo them using Ctrl + Y.

At this point you may like to look over [howthe.htm How the seeds build up to make tunes].

You can also make seeds yourself by playing them from the PC keyboard - see [Seeds.htm#Making_new_seeds_for_the_melody  Make new seed ], also from a music keyboard if you have those - see [Seeds.htm#Making_new_seeds_from_midi_keyboard Make new seed from Music Keyboard].

Instruments
Now lets explore instrumentation of the fractal tunes. Choose File | New . Choose a seed from the drop list or make a new one - any seed is fine for this exercise. You'll hear the tune played on a flute voice. Try selecting other instruments from the Voices  menu, and hear what the same tune sounds like on various instruments.

Seasoned composers and musicians can skip the next few paragraphs - but some readers of this help may have never written a piece or even a melody before. So, I'll give a brief introduction to musical instruments and instrumentation for newbies.

You'll notice that the Voices  menu is grouped into families. The voices there are the standard ones from the General Midi specification. Originally the first musicians who worked in midi made clips to be played on a particular synth only. If you played it on another synth, the voices might be completely different - the original piano may now be an oboe and so forth. So, in order to make it possible to share clips between musicians using different synths, the General Midi spec. was developed. In a GM synth, the first voice is always going to be some variety of acoustic piano for instance, so even if your piece maybe mightn't get played with the exact timbre of acoustic piano you heard when you created it, it will be played on a piano voice of some description..

There are many ways of grouping instruments into families. Perhaps a good overall classification is into percussive instruments such as marimba, glockenspiel etc, plucked ones such as guitar, harp etc, wind instruments such as flute, trombone etc, voice, and string instruments. Each of these has further subdivisions, for instance, the wind instruments are subdivided into woodwinds - flute, oboe, clarinet etc - and brass - trumpet, trombone etc. The Cor Anglais, or French Horn as it is otherwise known is actually a type of oboe so counts as a woodwind instrument.

Sometimes composers make ensemble pieces in which all the instruments that play are the same, such as a consort of recorders, trombones, or viols - or all in the same family. As an example of an ensemble of instruments in the same family, the string quartet consists entirely of string instruments - the violin (two of them - the first and second violin), viola, and 'cello. Other ensembles may consist entirely of woodwinds - or brass instruments (think of a brass band), or a combination of both.

In other pieces, the instruments are used that contrast / complement each other nicely. Some instruments are very companionable as it were, for instance, flute and harp go nicely together. Generally, it can be nice to combine a plucked or percussive instrument like harp, marimba etc with a melodic instrumnt with a more legato smoothly flowing type of sound such a flute, violin etc. Also it's nice to combine strings with wind instruments - and of course the orchestra has instruments from all the families, often played in episodes in which some of the players take a rest while others play in some contrasting arrangement, or as a little consort of woodwinds suddenly in the midst of it all, or whatever.

The fractal tunes provide an ideal environment for a beginner composer to experiment with orchestration -you don't need to think much about the notes - just focus on the process of intrumentation itself. You may also find you appreciate listening to orchestral music more as a result of experimenting with orchestration yourself in this way.

Each instrument has a natural range. For instance, the double bass is a low pitched instrument. You can play it high, but this is rarely done - it has an insteresting rather "thin" kind of a sound when it is played like that. You even get double bass concertos (e.g. by Vivaldi) in which the double bass is the solo instrument, mostly played high. Similarly, flute is usually played high, with middle C as the lowest note - but you can get alto flutes and even bass flutes that go very low. Similarly for other instruments. Stravinsky uses a bass clarinet to great effect in his Rite of Spring. Some instruments change completely in timbre depending on the register - the Basson has a very distinctive timbre in its lower registered. When played high however, it sounds almost like a new instrument (this is used to great effect by Mahler in the opening of Das lied von der Erder).

So that's something to bear in mind. You can either play the instruments close to their natural range - or for effect you can play them higher or lower.

To move individual parts up or down by octaves, go to the Parts  window, and highlight the part,and change the Octave Shift  (either use scroll bar or type new value in thebox below the column).

Orchestration
So now for our next exercise - to experiment with orchestration. Choose any of the fractal tunes from the drop list. Show the Parts  window. The instruments in play for the fractal tunes are all the ones shown in this window up to the number of parts in play. Select one of them and vary its instrument by selecting a new one from the voices menu. Also try changing the pitch by varying the octave shift.

If you can't quite pick out one of the parts when you listen to your tune, you can silence all the others by selecting silence into their parts - then the one remainingt part will continue as it was before, but without the other instruments. Once you can hear it, put the others back as they were and see if you can now hear it in the complete piece.

Sometimes one of the instuments.in the group has a more prominent role as the "solo" instrument that cariries the tune - think of a singer accompanied by harp, lute, guitar or piano for instance. Often even then the accompanying instrumet will have its own solo sections when it carries the tune for a short while. With the fractal tunes, generally the fastest tune is the more prominent solo one - but sometimes one of the middle speed ones is. Generally, the one that is at the right speed for the tune it plays to be "singable" is the solo instrument - at least in terms of speed if not virtuosity!. Sometimes the tune stays with one instrument all the time, and with other fractal tunes, the main tune gets moved around amongst various instruments.

So, one can think a bit about what instrument one wants to use for the solo line. Usully it tends to be a higher instrument rather than a lower one. This isn't by any means an unbreakable rule -think about Dvorak's New World Symphony for instance. Dvorak is an example of a composer who often puts the main melodic line into the bass line.Shubert also often has very singable bass lines even if they are not necessarily the main lines of the piece.

Also often in conventional arrangements you will have many notes above the main melodic line - e.g. maybe a piano or guitar will play high notes above the range of the singer they accompany.

Another kind of frequently broken rule - if you have a combination of a plucked or percussive instrument with a more continuous string / wind / voice instruemtn, the more continuous one has a tendency to carry the main melodic line more frequently.

So, experiemnt with various instruments for the main melodic line and try conventional type arrangements where the main line is continous and high-ish, and unconventional ones where it is percussive or plucked or low. Try various instruments for the accompaniment, and just get a feel of which ones help and which ones obscure the main line. Some pieces too may have more of a chordal than a melodic focus, and may have no strong melodic line at all. Also try some ensemble type pieces where all the parts are played by the same instrument - and try playing your piece again using another instrument for the ensemble. You can change the voice for several parts in one go by highlighting them all -click on the first then Shift + click on the last - then select a new voice and you will find it gets selected for them all at once..

Some of the instrumentations chosen for the fractal tunes that come with Fractal Tune Smithy are fairly conventional and some are already unconventional. Have a listen to some of them and see which ones you think sound more conventional and which sound rather unconventional in the instrumentation. Then try doing ones like that yourself too, either way

A quick way to build up a fractal tune one voice at a time
Start with File | New . Choose which instrument you want for the first part from the Voices  menu. Now make sure you have Voices | Auto Sel Las  t selected. Increase the <font color="#FF8000">Number of Parts to play  one at a time, and each time select a voice from the <font color="#FF8000">Voices  menu until you have the number of parts in play as desired - you can do all this while the tune is playing. Then transpose the parts as desired by showing the <font color="#FF8000">Parts  window and using the <font color="#FF8000">Octave Shift  column as usual. If you want to transpose the entire tune up or down - all the parts at once - use the <font color="#FF8000">Pitch  window.

Moving the tune from one instrument to another, and hocketing
Show the <font color="#FF8000">Parts  window. Then look at the Order of Play menu., and see what you have selected there. If this is a new tune, then you'll find it shows <font color="#FF8000">By Layer . You can hear this in the [1.082b/oboe_and_friends.ts oboe and friends] fractal tune. The tune continues normally in the top line, but the start of every seed that begins a new seed at a higher layer gets played by one of the other instruments instead of the oboe. You get this kind of syncopated effect with the oboe often missing the first note of its seeds. So, try that out to hear what it sounds like with your instrumentation.

Many of the fractal tunes use the next selection in this list, <font color="#FF8000">By layer with simultaneous notes  Try that instead - you will find the first part plays all its notes, accompanied by the second part playing the same tune,but more slowly - now the extra notes played by the ohter parts get sustained all the way to the next note for that part. And so on - you'll hear a canon by augmentation in fact with your chosen instruments, as explained in [howthe.htm How the seeds build up to make tunes].

Okay, that's pretty nice, many of the tunes use it. However, let's explore the other options here.

<font color="#FF8000">'''. By Note height ''' - the same note in the arpeggio always gets played by the same instrument. <font color="#FF8000">By time  - the tune just cycles round amongst the instruments, each playing one of the notes in turn. <font color="#FF8000">Cummulative note height  is a more complex way of assigning notes to the instruments. Anyway the general idea is that the tune gets broken up by being assigned to each instrument in turn. This is known as hocketting. See the help for this window for a little about those options: [User_guide2.htm#Order_of_play_menu Order of play menu].

Try those various options - then try the <font color="#FF8000">Other  option. This lets you make up your own combinations of the other options. Actually, you don't need to try to keep track of what the formula will do. Just enter some formula using the various letters such as <font color="#0080FF">t+m+h  or <font color="#0080FF">N+H+L  or whatever, and see what happens. You can try it out with any of the pieces. There are various other options in this window to explore - see it's help [User_guide2.htm#Order_of_Play_Other Order of play | Other]. The option to <font color="#FF8000">Sustain all notes to next note for same part  can be used to get several parts playing together.

Also at this point one could also digress to explore <font color="#FF8000">Bs | Seeds Options | Seed pos increment  as well, perhaps with <font color="#FF8000">By layer with simultaneous notes  - see the help for that window for some informatin about what it does - main effect is you get more notes played in the second and third parts, and a somewhat more complex texture to the fractal tune. One could also try the polyrhythm tunes too - many other things too, but I'll leave those for later FAQ entries on this page. Now, let's go on to the tuning of the notes - the really fun part in my (slightly biased probably) opinion.

Tuning
For this exercise, choose any of the fractal tunes, or one you built up from new in the previous exercises, and try changing the scale from the scales drop list.

As a general guide, ones with fewer notes in them are easier to use, and five or seven or there abouts is enough to have an interesting variety of intervals for the melody, and few enough notes so that nearly everything you play will be nice. Try twelve tone scales with the <font color="#0080FF">pentatonic  or <font color="#0080FF">diatonic  modes (in the <font color="#FF8000">Arpeggios  drop list) - and the minor scales. Then have a look at the other modes for the twelve tone scale (by a mode here I mean a selection of notes from the scale), e.g. the 5 note modes, which you get to from the <font color="#FF8000">Arpeggios  drop list for the twelve tone scales..

If you find the tune goes rather high or low, you can set a range for each part using <font color="#FF8000">Parts | More | Ranges . To set the range for several parts at once, highlight all the ones you want to change. The scroll bars shift the bounds of the range by semitones, tones, or the scroll bar below the note number shifts it up / down by octaves.

If you would like an introduction to the various twelve tone systems in the <font color="#FF8000">Scales  drop list at this point, have a look through [#histtuning How do I play the historical tunings of the diatonic and twelve tone systems?] which will get you started. Also have a look through the [Scales_and_Fractal_Tunes.htm <font color="#000000">Musical note intervals ] page for some of the background and theory for them. But, you don't need to know all that to have fun with them - it is just for those who find such things of interest, and kind of useful eventually to know in the long run I expect.

You'll see there are many other scales apart from teh twelve tone ones. Try the <font color="#0080FF">Pygmie  and Koto scales, which are very tuneful, also the Slendro and Pelog which are really interesting and unusual (to the Western ear - these are scales typical of those used in Indonesia). Try the Thailand scale too, which is close to seven equal temperament (seven equally spaced notes to an octave). Generally, try the ones with fewer notes first.

Also be sure to have a go with the harmonic series. This is the series of notes you get in the partials (component frequencies of the note) of many "harmonic" timbres such as voice or string, woodwinds - most of the instruments of the orchestra in fact. The result is that the notes of the harmonic series go well together. See [harmonic_series_notes_sound_well_together.htm <font color="#400040">Why two notes of the harmonic series sound well together ]

For a really unorthodox one try the <font color="#0080FF">Bohlen-Pierce  one - that one should have 3/1 (octave plus a fifth) instead of 2/1 (octave) as the "octave". So in the <font color="#FF8000">Parts  window, change the drop list to read <font color="#0080FF">Modulate by (interval)  and to transpose instruments up / down, use <font color="#0080FF">3  or <font color="#0080FF">1/3  or <font color="#0080FF">9  or <font color="#0080FF">1/9  if you want them to go up and down by two "octaves".

For some more small scales to try go to <font color="#0080FF">Scales | More Scales  drop lists - then the <font color="#0080FF">Woodstock windchimes scale  there is really nice, and also the selection of pentatonic scales labelled " <font color="#0080FF">Canright's exs from Superparticular Pentatonics  ", and " <font color="#0080FF">Canright's Some pentatonics I have known  ".

If you want to be a bit more unorthodox, take some normal type of pentatonic scale like the woodstock windchimes <font color="#0080FF">5/4 4/3 3/2 5/3 2/1 , then change one of the intervals to an exotic one like 11/8, 11/9, 13/8, or some other one using the eleventh or thirteenth or higher prime harmonics. Maybe in this case leave the 3/2 as a kind of grounding thing, so how about <font color="#0080FF">5/4 11/9 3/2 13/8 2/1  or something. Just to get an idea of what those types of intervals sound like in a scale - and if you like it, as usual, save the result for future reference. Sometimes adding just one exotic interval to an otherwise fairly conventional one can be quite striking, as in the [1.082a/bitter_sweet.ts bitter sweet ]fractal tune. That one consists of a normal major chord, with an 11/8 added to it to make the scale <font color="#0080FF">5/4 11/8 3/2 2 . Sounds rather more exotic than you'd expect from adding just one note to a major chord :-).

Another fun thing you can do is to make a scale that is non ascending, or an arpeggio that is non ascending. For instance the piece [1.082a/major_chords_round_the_cycle_of_fifths_-_Bach_temperament.ts major chords round the cycle of fifths - Bach temperament] uses a conventional well tempered twelve tone scale from Bach's time - and then an arpeggio 0 4 7 12 7 which goes up a major chord, and then down to the fifth. As you go up this arpeggio, rather than ending at the octave at each repeat of it, you end a fifth higher instead. So the further you go up it, the further you go round the circle of fifths - hence the title. So the tune gradually wanders up the circle of fifths - but because of the fractal nature of the tune, keeps returning to the home key, at longer and longer intervals of time.

Now that you have an eye for what to look out for, take a look at the scales and arpeggios used for some of the other fractal tunes and they may give you a few ideas.

Then, try out the SCALA scales - you need to install the SCALA archive first - see [FTS_and_SCALA.htm <font color="#400040">Setting FTS up for SCALA and vice versa ] <font color="#400040">. You can order the SCALA scales drop list so that the smaller scales go first in the list, and in fact that's the standard setting for FTS. That's because then the earlier ones in the list will generally be easier to use in the fractal tunes.

<font color="#400040">FTS also has a number of options to help you make your own scales. Take a look at [#New_scales <font color="#0000FF"> Make new Scale ] <font color="#400040">, and the [More_scales.htm <font color="#000000">Scales ] <font color="#400040">help page to find out more about this. Of course, SCALA is an entire program completely devoted to the construction and exploration of new scales.

[#top top]

Can I use FTS to make music to sell commercially?
Yes you can. I made FTS as an algo-comp tool precisely for composers to use in this way and it is absolutely fine :-).

It's also okay to use the demo tunes that come with FTS in your own pieces. They are there for that purpose as demo tunes which you can modify to use to make your own pieces. You can copyright your own tunes made with FTS. You can't copyright the ones that come with the program - but have my permission to use them.

I reserve the right to introduce a commercial license in the future. However, I haven't done so yet, and if I do ever do it, all existing owners of FTS will be granted commercial licenses automatically, in line with my commitment to never charge for upgrades of FTS for existing users.

The installer itself is freely distributable.You may include this program on any CD compilation.You may not sell the evaluation copy. You may not charge for other users to use FTS. If you wish to use the program itself in a commercial fashion (rather than music made with it), or use the program itself to promote other commercial products, please contact me first to discuss ideas or make arrangements.

You need additional permsssion if you want to run FTS itself commercially to make music that changes dynamically e.g. to play a web site fractal tune that changes each time you visit the site, or a background tune that changes in response to events, or the like. Such uses of FTS are fine if there is no commercial or advertising element involved - be sure to contact me if unsure about the situation.

I hope this is reasonably clear. If you have any questions or want anything particular clarified then let me know.<font face="Lucida Handwriting">Robert Walker - [mailto:support@tunesmithy.co.uk <font face="Lucida Handwriting">support@tunesmithy.co.uk ]

(This is not to be considered as a legal document, but is just information to help FTS users understand how I see the situation).

[#top top]

How do a play a new seed for a fractal tune from my music keyboard?
Show one of the Seed windows from <font color="#FF8000">'''Bs | Seed... '''

Make sure you have <font color="#FF8000">In | Open Now  or <font color="#FF8000">In | Open at start of session  selected so that you can use the midi keyboard.

Select <font color="#FF0000">Edit  from the <font color="#FF0000">Edit / Play / Relay  radio buttons.

Now just play a musical phrase from the music keyboard. The <font color="#0000A0">middle C  key plays the first note of the arpeggio (with the standard settings), and you will find that the notes gets shown in the window as you play. Use <font color="#FF8000">Apply <font color="#804000"> .to copy it into the main window to use with the current fractal tune. Press <font color="#FF8000">Clear  to start each new seed, otherwise your notes get added to the end of the previous one. To use the recorded volumes and times, be sure to select <font color="#FF8000">By times  and <font color="#FF8000">By volumes . That basically is all there is to it.

You use notes in the left most octave of a four octave keyboard - two octaves below middle c - as editing short cuts.

You may wish to copy or print out this list of shortcuts to have at hand while playing.

<font color="#8080FF">C3  - Clear seed / arpeggio / scale <font color="#8080FF">D3  - Play seed / arpeggio / scale <font color="#8080FF">E3  - Apply seed / arpeggio / scale <font color="#8080FF">F3  - Play / Stop Fractal Tune

<font color="#8080FF">D4  - Set 1st note of seed to 1st note of arp.

This is in the midi notation where the number indicates the octave, middle C is C5, and C3 is the left-most note of a four octave keyboard.

So, you can go like this: <font color="#8080FF">C3  to clear. Play a seed starting from middle c. <font color="#8080FF">E3  to apply it, and <font color="#8080FF">F3  to play / stop the fractal tune.

After you make the seed, you can use <font color="#8080FF">D3  to play it on its own to hear what it sounds like before you apply it.

If you play more notes they get added to the end of the previous seed - clear it to start a new seed.

The fractal tune may use the volumes you play, or be constant volume, similarly may or may not use play rests, or use the note timings, depending on your settings for this in the Seed window. You can also change these from the midi keyboard using some of the black keys in the left-most octave of your keyboard.

For various other things you can do from the music keyboard, e.g. invert / reverse the seed etc - see [Seeds.htm#music_kbd-seed_edit_mode_shortcuts Music keyboard shortcuts for seed edit mode ] :

You don't need to show the Seed window at all as you can do all this in the main window - relying entirely on the music keyboard shortcuts. To do this, first use <font color="#FF8000">In | Main Window Seed Edit Mode (  <font color="#FF0000">Ctrl + F2  <font color="#FF8000">)  to put the main window into seed edit mode

(with a hidden backup editable seed).

For a longer explanation - slower and with a few more details, see [Seeds.htm#Making_new_seeds_from_midi_keyboard Make new seed from Music Keyboard].

[#top top]

How do I make a fibonacci rhythm, and fibonacci fractal tune?
<font color="#FF8000">Bs | Seed Options | Fibonacci rhythm , and select <font color="#FF8000">Play Fibonacci rhythm .

This makes an irregular sounding never repeating rhythm with long and short beats in the golden ratio to each other. All the voices play this rhythm at varied speeds.

If you select <font color="#FF8000">Parts | Order of Play | By layer with simultaneous notes , then again, just like the original fractal tunes, the result is a canon by augmentation - with all the parts playing the same tune with the same rhythm, but at varying speeds.

However, this time only the first,or first two notes of the seed get used, and it now has these irregular rhythms.

With the preset rhythm settings, the rhythm as a whole never repeats, though any section of it will recur eventually at some later date.

You can also explore other patterns of long and short beats. Just go to <font color="#FF8000">Custom Rhythm , and select either a two or three beat rhythm - then enter any pattern of Ls and Ss, (and Ms too for the three beat ones) into the edit boxes.

Make sure that each pattern has one of the other letters in it, e.g. the L pattern needs an S in it (or alternatively an M for the three beat seeds) - and check to see if it says "found solution". If it does, you'll get a canon by augmentation again, but with some other pattern. If FTS doesn't find a solution, you'll still get some tune or other, and the notes will still follow a canon, but it will no longer be a rhythmically strict canon.

To watch the canon unfold visually, show <font color="#FF8000">Bs | Tune , and maybe transpose the parts to different octaves - and notice how each part shows the same pattern, at varied speeds.

For more about all this see the help for the [fibonacci_rhythm.htm#Golden_ratio_rhythm Fibonacci rhythm ]window.

[#top top]

How do I make fractal tunes using DNA fragments for the seed? (tutorial)
First an introduction. It is mildly fashionable at present to use DNA fragments to make music. The result can be surprisingly tuneful and structured. Goodness knows why it works so well, but maybe it suggests there is more to the world than we know about with our limited knowledge :-). The composer, musician and musical healer Mary Ackerley uses this technique a lot in her work, and you'll find some from Mary Ackerley's music page.

Anyway, I've not researched in this myself, but I did try an experimental tune to test the technique, using a DNA fragment that Mary Ackerely found at http://www.ncbi.nlm.nih.gov/, and the result is [1.09a/DNA_music.ts DNA_music.ts ]. It uses a DNA fragment from the human growth hormone. It was just an experiment to check the technique worked, but turned out to be so nice that it seems perfect for a tutorial introduction to explain how it is done.

I'll describe how you can make tunes like this.

First, after you download your fragment, you will probably want to keep a record of where you got it with the fractal tune. Do this using the <font size="3" color="#FF8000">Tune Info  button in the main window, which can be used to add any information you like to the tune as a comment. Just type or paste the information into the information field.

Now go to <font color="#FF8000">Bs | Seed Options | Alphabet Seeds  and select <font color="#FF8000">Alphabet / digit seeds 

Now, if you want to make DNA music you need to use either the <font color="#FF8000">Protein  letters or the <font color="#FF8000">Bases  - the data is availalable in both forms. The Protein letters make wider ranging tunes. So click the button to select that.

Now just paste your DNA fragment as a new seed. You can show a window with more space for it from <font color="#FF8000">Bs | Seed as Text  (or the <font color="#FF8000">A...  button in the main window).

For this tune, I pasted the same DNA fragement into the position in the <font color="#FF8000">arpeggio , <font color="#FF8000">volumes  , and <font color="#FF8000">times  fields in the <font color="#FF8000">Seed as Text  window. I moved the first two around by cutting off the end of the fragment and pasting it round to the start.

Anyway do whatever you like - you can use the DNA fragments for any of these.

Now, the seed is going to be a very long one of course. With the standard settings for FTS, you'll find that it just gets played in the first part, and the others hardly even get a look in. You can use <font color="#FF8000">Parts | Other  to help with long seeds like this, but another method which can turn out really nicely is to use the [Seeds_options.htm#seed_pos_increment Seed Pos Increment] window, and that's what I've done here.

Here, FTS came up creatively with a really nice musical bug, so nice that I left it as it was and didn't fix it, and it is used with this tune - the seed pos increment bug. You get it if you select <font color="#FF8000">Cycle At  instead of <font color="#FF8000">Cycle At pos in seed  in the <font color="#FF8000">Seed Pos Increment  window - it's because of this bug that you get those occasional very long sustained notes in all the parts - in this tune anyway.

For more about the options you can use with DNA music, and indeed with any other alphanumeric data to use for the seed, see the help for the [Seeds.htm#alphabet_seeds Alphabet seeds] window.

[#top top]

todo

How do I make a fibonacci tonescape?
You start with a Fibonacci rhythm. Then the idea is that instead of using a seed, the tune goes up by one interval on every long beat, and down by another interval on every short beat. So, the tune goes up and down in an irregular, never repeating fashion, just as it does with the variation in long and short beats.

For most choices of the intervals, the tune rapidly ascends out of audible range or descends out of range. However, if you match the interval well with the proportionate numbers of long and short beats, the tune stays steady in pitch, overall, for hours at a time.

To try this out, go to <font color="#FF8000">Bs | Seed Options | Fibonacci Rhythm  - select to play a rhythm or custom rhythm as in the previous section. Then continue to <font color="#FF8000">Fibonacci Tonescapes , and select <font color="#FF8000">Play Fibonacci Tonescape .

Now in the L column, enter a ratio, any you like, say 4/3. Then the S column will change, to 22/35 in this case, if you are using the preset Fibonacci Rhythm. The pitch drift value shows how much you can expect the tune to drift by for every note played - 2.032059 cents in this case.

If you prefer smaller ratios, with more pitch drift, then go to <font color="#FF8000">Optimisation Options , and set the Max denom or denum to say 30 instead of 100 (or whatever you want). Then the S column will change to 5/8 for the L value of 4/3 - but with a much larger pitch drift of -7.83255 cents for every note played.

Then, try various numbers. Some will work particularly well, such as 11/10 and 6/7 which gives a pitch drift of 0.111544 cents for the preset rhythm. Click <font color="#FF8000">Find first row ratios now  to find the ratios which lead to the smallest pitch drift of all those in ranges of values you set in the <font color="#FF8000">Optimisation Options  window.

See the help for [fibonacci_rhythm.htm#Fibonacci_tonescapes Fibonacci Tone Scapes] for more details.

[#top top]

How do I make a tune that changes in speed as it continues (tempo map)?
<font color="#FF8000">Bs | Seed Options | Tempo Map .

Select <font color="#FF8000">'''Use tempo map. ''' Highlight a zone, and set the tempo for it. Set the time for each zone using the scroll bars for the <font color="#FF8000">Mins  and <font color="#FF8000">Secs  column. The tune will now change in speed as it progresses. To add or remove zones from the tempo map use the <font color="#FF8000">Copy  and <font color="#FF8000">Erase  buttons.

See the help for [User_guide2.htm#tempo_map Tempo Map].

[#top top]

When I change the settings, the tune changes in surprising fashion - but when I play it back I only get the last version of it heard. How can I include all those sudden changes as part of the tune?
Yes, that's how it works - the idea is that when you change the tune, you hear the new tune all the time, i.e. what it will be like when saved after your changes. So then, when you play it back, you always hear the last version, whatever it was.

However, you can also record all the changes as they happen, so that they get repeated when you play it back again. Here is how to do it:

<font color="#FF8000">Bs | Seed Options | Tempo Map .

<font color="#FF0000">Select  <font color="#FF8000">Record fractal tune changes .

Now play the tune and make changes as it continues - this time everything you do will get recorded.

Now <font color="#FF0000">unselect  <font color="#FF8000">Record fractal tune changes  (otherwise you'll re-record the fractal tune changes next time you play it) and that's it done!

Click the play button to hear the tune with all the changes you made in place.

See the help for [User_guide2.htm#tempo_map Tempo Map] for details.

[#top top]

How do I make the evolving play list?
<font color="#FF8000">Bs | Seed Options | Tempo Map .

Now make as many zones as you want using the <font color="#FF8000">Copy  and <font color="#FF8000">Erase  buttons. Highlight each in turn and open a fractal tune into it to add it to your play list. Set the time for each zone, and if you want, speed up or slow down each tune by changing its tempo - a tempo of 60 means to use the original speed.

It's an evolving play list because each tune gets affected by the condition of the tune as it was after the one played before it, so that each time round they will be slightly different.

See the help for [User_guide2.htm#tempo_map Tempo Map].

[#top top]

How do I make a polyrhythm fractal tune?
<font color="#FF8000">Bs | Seed Options | Polyrhythms 

Select <font color="#FF8000">Play polyrhythm .

Select a polyrhythm from the drop list, or make your own ones - see the help for [Seeds_options.htm#polyrhythms Polyrhythms] for more about this.

The polyrhythm will only be a srict one you use a seed which has all its notes set to the same length (also if the tune isn't set to get faster / slower as it rises / falls). If you try it with other types of seed, or with tunes that vary in speed, you get interesting textures with a polyrhythm flavour to them.

You can also try working the other way round. Make a rhythm with the [polyrh_metronome.htm Polyrhythm Metronome Player] then transform it into a fractal tune once you have made a rhythm you particularly like.

[#top top]

How do I use the Scales / Arpeggios for Layers feature?
<font color="#FF8000">'''Bs | Seed Options | Arpeggios for layers... '''

Select <font color="#FF8000">Arpeggios for layers .

Highlight each layer in turn, and select the scale and arpeggio you want to use from the main window.

This builds the fractal tune one scale and arpeggio on top of another. For instance, if the first part is the bluesy minor chord and the second part is Pythagorean twelve tone, and you are using <font color="#FF8000">Parts | Order of Play | By Layer with simultaneous notes , then the top part will play bluesy minor chords over every single note of the second part in Pythagorean twelve tone. I.e. the tonic for the top part keeps shifting in this way.

See the help for [Seeds_options.htm#Multiple_scales Arpeggios for layers].

[#top top]

How do I use the Seeds for Layers feature?
<font color="#FF8000">'''Bs | Seed Options | Seeds for layers... '''

Select <font color="#FF8000">Seeds for layer . Choose how many layers you want to use for the seeds (after that, the seeds get repeated so layer 3 plays the seed for layer 1 say, and layer 4, plays the seed for 2, and so on).

Highlight each layer in turn, and select the seed you want to use from the main window, or make a new one.

Other options here to particularly notice - the option to rotate or permute the layer played - and to sync the seed played with the Arpeggios for layers (or not).

See the help for [Seeds_options.htm#Multiple_seeds Seeds for layers].

[#top top]

How do I make a fractal tune that stays within a limited range of scale notes?
Set the arpeggio up as a circulating one. So for instance if it is a seven note scale, you can make the arpeggio as 0 1 2 3 4 5 6 7 0

Tip: here is a quick way to do it:

Show the <font color="#FF8000">Arpeggios  window and choose <font color="#FF8000">Select All , and then add a 0 at the end of the arpeggio - then as is usual in this window you can use the <font color="#FF8000">Apply  button to put it back into the main winodw.

[#top top]

How do I make a fractal tune with many layers that starts at some position other than degree 0?
Add an extra 0 to the start of the seed, and then show the <font color="#FF8000">Bs | Seed As Text  window and set the first notes of the volumes and times both to 0.

This makes it a kind of dummy note which never gets played, and is just there to anchor the fractal tune.

[#top top]

How can I see which options I'm using for a fractal tune?
Click the Organise Windows button - <font color="#FF8000">O i  n top right of any of the windows, or <font color="#FF8000">Help | Organise .

Then click on <font color="#FF8000">Tune Smithy file | Overview . Select <font color="#FF8000">Edited  in this box and that will show all the windows that have their values changed away from the preset values.

Now if you highlight one of the windows, and click on the <font color="#FF8000">-> Non dft  button, the mouse cursor gets warped to whichever edit field, check box etc is changed away from the standard settings - or more generally, one of the ones that has changed if several are.

[#top top]

How do I play two fractal tunes synchronised with each other?
[#sync_tunes_intro Intro] - [#sync_tunes_prep Preparations] - [#sync_tunes_send The Sending Shortcut ]- [#sync_tunes_receive The Receiving Shortcut] - [#sync_tunes_tempi Synchronised Tempo Changes] - [#sync_tunes_tuning Tuning] - [#sync_tunes_parts Parts] - [#sync_tunes_trouble_shooting Trouble Shooting]

Intro
You can hear an example of this technique on my New fractal tunes page (on-line). - see FTS Duet.

Here now is how it's done - at present anyway - probably as time goes on other and probably better ways of doing this will evolve.

You need to have two copies of FTS running at the same time, a receiving and a sending one. The receiving one plays the notes for both of them, while the sending one relays it's fractal tune to the receiving one. The relaying is done using Midi Yoke or Midi Relay, or a physical loop back.

[#top top], [#sync_tunes start of section]

Preparations
The easiest way to do this is probably to set up two shortcuts to start up the receiving and the sending copies of FTS.

Start up FTS then go to <font color="#FF8000">File | Make Desktop shortcut and make two shorcuts there - let's just call them "Sending FTS" and "Receiving FTS" for this example, but you can call them whatever you like. You will then find two shortcuts appear on your desktop. After making them, you can move them to some more convenient location if necessary - e.g. to a folder, or the Start Menu or the task bar ec.

Then, set up both copies of FTS following the instructions given here. You only need to do that once. If you close both copies of FTS and start them up again from the same shortcuts, the two copies will remember their previous settings so you won't need to set them up again.

You will want to relay from the one that sends to the one that receives via Midi yoke, Midi Relay, or a hardware loopback cable joining your midi out to the midi in. See [#getting_started Relaying notes to and from FTS using a loop back].

Setting up the two copies of FTS is a bit involved, but if you follow through these instructions it won't take that long to do and you only need to do it the one time. Since you are doing this for the Sending and Receiving shorcuts only, they won't affect the settings in FTS as you use it normally. You can have any number of shortcuts for FTS. So long as each one is made using different shortcut names, then all the settings are saved independently of each other. (If you rename them after you make them, then what counts is the original name the shortcut had when you first made it). So, as long as the names are different, none of the changes you make to any of your shortcut started copies of FTS will affect any of the others.

Those interested in the techy details here can look at the target using <font color="#FF0000">Right click on the shortcut then <font color="#0080FF">Properties. The distinguishing feature is the extra parameter such as <font color="#0080FF"> ::IniFile Sending FTS.ini  in the Target field.

[#top top], [#sync_tunes start of section]

The Sending Shortcut
Now to set up the Sending version of FTS, start it up using the Sending shortcut. Then go to<font color="#FF8000"> In | Options | Midi Sync, and select <font color="#FF8000">Send Midi Start / Stop when tune starts or stops  , and <font color="#FF8000">Send the Midi Start early. It's useful to send the Midi start current song message early as that gives the receiving version a moment or two to get started before it plays the tune. Select the appropriate device in the Out Menu,e.g. <font color="#0080FF">Midi Yoke Junction 1

You should select <font color="#FF8000">Bs | Note Timing Options | Time by |  <font color="#0080FF">start of tune  as that also helps to keep the tunes exactly in sync.

Be sure to unselect <font color="#FF8000">Close midi out when inactive, <font color="#FF8000">Close midi out when you stop play  and <font color="#FF8000">Tell other copies of FTS to close Midi Out on open here.

[#top top], [#sync_tunes start of section]

The Receiving Shortcut
Now to start another copy of FTS using the Receiving shortcut. To help distinguish the two, so that you can see which window belongs to which, you could set it to use a different skin from the <font color="#FF8000">Tasks | Skin window.

This time go to<font color="#FF8000"> In | Options | Midi Sync, and select <font color="#FF8000">Start / Stop tune on receieve Midi Start / Stop  , and <font color="#FF8000">Wait for next note received to play first note. It will probably start up on top of the other one so you may need to move the window to one side to see them both at the same time..

Set it to receive from <font color="#0080FF">Midi Yoke Junction 1 or whatever is needed to receive the relayed notes and open the midi in device. You may well want to set it to open it at the start of every session.

Again, select <font color="#FF8000">Bs | Note Timing Options | Time by |  <font color="#0080FF">start of tune.

Also again, unselect <font color="#FF8000">Close midi out when inactive, <font color="#FF8000">Close midi out when you stop play  and <font color="#FF8000">Tell other copies of FTS to close Midi Out on open here

[#top top], [#sync_tunes start of section]

Synchronised Tempo Changes
Finally if you want both tunes to use the same tempo, you may also want to select <font color="#FF8000">Respond to tempo changes in any other copies of FTS  in both these copies of FTS. This will let you vary the tempo in either one and the other one will respond instantly - well more or less instantly - actually it will probably only manage to do the tempo changes at the same time to within a couple of milliseconds or so. If you keep varying the tempo while both tunes are playing, they may drift out of sync with each other. However, if you vary the tempo in one tune while the other tune is stopped, or stop and start again after varying the tempo, they will be in sync.

[#top top], [#sync_tunes start of section]

Intro
Now if you want the two tunes to be in the same tuning, be sure to set the one that sends to send in equal temperament. If you want to hear your piece in some other tuning other than twelve equal, you might well wonder why one needs to send the notes in twelve equal. The natural thought would be to set the sending FTS to play in the same tuning as the receiving FTS.

However, the thing is that the sending FTS is playing the tune in the same way that you would do it yourself if playing along with the tune from the midi keyboard - your keyboard sends notes in twelve equal, and FTS then retunes them to the current scale. It's the same idea, except that here it's a second copy of FTS that is doing the playing. So, - FTS lets you play in any scale from a music keyboard just normally, without the need to continually adjust the pitch bend wheel all the time - so in the same way, you want the sending copy of FTS to send the notes in twelve equal, and leave it to the receiving FTS to do all the retuning that's needed.

If you set the sending one to play its notes in any other tuning other than twelve equal, then the receiving FTS will pitch bend all the notes it plays by those amounts in addition to the pitch bends it is already using to tune the notes played to the current scale You probably don't want that! (Of course if you do want to do that, just as a fun wierd thing to do, fine, but be sure that is what you want to do).

So, you want the sending app to send in twelve equal as the scale. What about the arpeggio?

The standard setting for the fractal tunes is to play the current arpeggio from the white notes of the Midi In keyboard. This lets you play along with the tune from the white keys whatever tuning it is in, and then you can use the black keys for accidentals if there happen to be any accidentals available in that position in the current scale.

So, in the receiving FTS, the white keys play the current arpeggio (rather than the scale). The sending FTS needs to play its notes in twelve equal diatonic (same as playing them from the white keys of the music keyboard). That's a suitable setting here for most fractal tunes. One reason why one might want to vary this setting is if you want the sending FTS to play in some other arpeggio from the receiving one, e.g. to play "accidentals" in the arpeggio of the receiving FTS. I won't go into that here but once the way it all works is understood, that is something one could explore.

How to do it
First check to make sure that the sending FTS sn't using any pitch bending options such as the just intonation retuning or the pitch bend vibrato. The easiest way to ensure this is to use<font color="#FF8000"> File | New first, and make sure you have <font color="#FF8000">Out | Retune to Just Intonation Harmony with pitch shifting  switched off.

Now set it to play its notes in twelve equal with diatonic as the arpeggio.

Make sure you have it set to use middle C as the 1/1 in the Pitch window.

To make sure that the notes are also received appropriately, then in the Receiving FTS, go to<font color="#FF8000"> In | Options  and you want <font color="#0080FF">White with Accidental Play 12 t diatonic from the drop list, and you want to choose <font color="#0080FF">Play Current Arpeggio from another drop list in this window. This sets it to play the current arpeggio from the white notes of the keyboard.

Go to <font color="#FF8000">In | Options | Midi Keyboard Options, and make sure you have the Midi In Note for degree 0 as 1/1 set to C - to match the 1/1 note sent by the sending FTS.

You won't need to change any of these settings. When you change to a new scale or arpeggio in the receiving FTS, just leave the sending FTS to continue to play its notes in twelve equal diatonic. Ifyou want to change the seed in the sending FTS you don't need to change the arpeggio or scale, just change the seed.

That's it done.

Alternatives
More generally, you can set the sending FTS to send its notes in any arpeggio, so long as it matches the ones used by the midi keyboard to play the arpeggio in the receiving FTS. So for instance if you set the receiving FTS to play the arpeggio notes from all the keys of the keyboard consecutively, you would set the sending FTS to play in twelve equal with the arpeggio set to Follow Scale. Then, though the sending FTS is playing in twelve tone, the receiving FTS will again play those notes in its current arpeggio whatever it is. Or if the receiving one is set to play the arpeggio notes from <font color="#0080FF">White Keys Pentatonic (<font color="#FF8000">In | Options | Kbd Options ) C D E G A then set the sending FTS to play its notes in the pentatonic arpeggio, and so on. Again, you just need to do this the one time, set it up so that both are using the same protocol, and then from then on you can forget about it - the sending FTS will then automatically play its seed in the arpeggio used by the receiving FTS.

An alternative approach to using twelve equal for the scale is to use some other twelve tone temperament, and set the receiving FTS so it no longer responds to Midi pitch bends from <font color="#FF8000">In | Options | Pitch bend Opts. Indeed, if you don't mind about the arpeggios matching up, you can just play any FTS tune through any other one in this way by making sure the receiving one is set to ignore pitch neds, and see what happens.

However if you want the sending FTS to play its seed in the same arpeggio as the receiving FTS, then the way explained here is an easy way to do it, and it's probably better to just not send the pitch bends in the first place

[#top top], [#sync_tunes start of section]

Parts
The easiest way to work is to set the sending FTS to send its notes on a single part, and then highlight the part you want it to send them on in the Parts window. Or maybe you want to send on several parts - that also is possible but takes more care.

The best way to use the parts in the Receiving FTS is to go to <font color="#FF8000">In | Options and set it to<font color="#0080FF"> Select Part by Input Channel.

This next step is important - In the Sending FTS make sure each part gets sent on the same numbered channel, by going to<font color="#FF8000"> Out | Options | Midi Output Channels for Parts and Polyphony, and use the <font color="#FF8000">Chann = Part  button to set each part to play on the same numbered channel.

Then you probably want the sending FTS to send its notes using an instrument of its own. The best way to do that is to use a part beyond any of the parts in the receiving FTS. If sending notes for a single part just set the number of parts in play to 1 and highlight the part you want to send in the Parts window. If sending for several parts, use the<font color="#FF8000"> parts from part  <font color="#0080FF">... <font color="#FF8000"> onwards setting.

If you want it to play using the same instrument as the receiving FTS, then it is okay to use the same part. Be aware that the Sending FTS will normally change the instrument for the part in the receiving FTS to match your instrument selection in the Sending FTS. If you want to switch that off, you need to select <font color="#FF8000">Out | Options | Skip Midi Out Voice Selections in the sending FTS.

Why should one use Chann = Part?
You have to do it that way because otherwise, if the sending FTS sends notes on different parts, they will be played on different parts in the Receiving app. That's particularly relevant if you are using the ignore pitch bends approach to relay one tune to another. If the sending FTS sends its notes in twelve equal, then it won't need to play them on different channels, but unless you set the part to played in the same numbered midi out channel, then theparts may get played on unexpected parts in the receiving FTS.

[#top top], [#sync_tunes start of section]

Trouble shooting
This timing synchronisation works best if both copies are running on the same computer because though it uses Miid clocks and song position indicators, it also uses shared memory in the computer as an extra aid to communicate the exact start time between the two programs when they run.

The first notes in both tunes don't get synchronised exactly - how can this be fixed?
Probably the receiving FTS hasn't had enough time to set everything up before it can play its first note. Try increasing the <font color="#FF8000">Extra sleep after start. in the Sending version.

The first note sent by the sending FTS gets cut off short as soon as it is played - how can this be fixed?
That is probably because it is played just a fraction of a second before the receiving FTS starts its tune - FTS does a switch off of all notes before it begins playing the tune. Again try increasing the <font color="#FF8000">Extra sleep after start. in the Sending version.

Some notes get strangely tuned - how can this be fixed?
Make sure you hav switched off all the pitch bending options in the sending FTS or set the receiving FTS to ignore pitch bends as explained in the Tuning sub-section above.

Some notes get played with unexpected instruments - how can this be fixed?
Check over the help on Parts above and make sure you have both the Sending and Receiving FTS set up correctly to work with the parts.

[#top top], [#sync_tunes start of section]

How do I synchronise the first note of a fractal tune with a tune played from my sequencer or notation software, or my own playing from the music keyboard?
If your sequencer or midi keyboard has an option to send <font color="#0080FF">Midi Start  and <font color="#0080FF">Stop  messages, you can use those - go to <font color="#FF8000">In | Options | Midi Sync , and select <font color="#FF8000">Start / Stop tune on receieve Midi Start / Stop 

Otherwise, select <font color="#FF8000">Start tune when a note is played from midi in (a "cue" note), and skip that note .

Either way, select <font color="#FF8000">Wait for next note received to play first note .

You will want to unselect <font color="#FF8000">Close midi out when inactive, and <font color="#FF8000">Close midi out when you stop play , because otherwise re-opening Midi out causes delays when the tune starts.

Play the cue note or send the <font color="#0080FF">Midi Start  message well in advance of the tune, say a bar ahead. The cue note is received by FTS but not played, just used to cue it to start the tune. It then sets everything up ready to play and pauses just before the first note of the tune. When you play your next note from midi in, the tune will start at once in synchrony.

You can also assign a particular midi note to play from your sequencer or keyboard to start / stop the tune, from <font color="#FF8000">In | Options | Kbd Regions |  <font color="#0080FF">Start Fractal Tune  and <font color="#0080FF">Stop Fractal Tune  - you can assign any note you please to use to start and stop the tune, e.g. say c or c'' or whatever. Here you need to select a note that you can happily skip while playing - e.g. one of the notes near the extreme of your keyboard range perhaps - then whenever you play that note, instead of the note sounding, the tune starts or stops. Again, select <font color="#FF8000">Wait for next note received to play first note  as before, and the tune will start immediately on the next note played after the cue note.

[#top top]

Might FTS or a program like it one day become a composer in its own right?
Okay, this is a somewhat philosophical question, but its one that arises for some FTS users. So I think it's fair to address it here.

Some composers are so impressed by FTS's capabilities that they can envisage it or a successor of the program replacing the composer altogether. However the way FTS in particular composes has its limitations, and there are also theoretical reasons for supposing that a computer program can never replace human reasoning - not if programmed in the normal fashion in a computer language. I see it as a useful tool for composers, and in the future some composers may work with programs like this more and more, but I don't see it ever becoming a composer in its own right. But see what you think.

First, I agree FTS is sometimes astonishingly successful and human like in the tunes it produces. Take as an example the "Beautiful 13 limit melody" - I think if I hadn't heard FTS before and was told that this was a piece by a human composer, I'd have believed it. However, the reason it is so successful is because it uses a method that seems to be particularly attuned to the computer's capabilities. It composes pieces based on the form of a canon by augmentation built up fractal fashion from a simple seed - for the most part that is - the fibonacci tonescapes use a completely different approach. The reasons are unclear to me, but for some reason this form, either as it is, or transformed in various ways, produces satisfying music. It is often very "human like" in its feel. So its success is due to the choice of a musical form that a computer can generate easily, one that a human can only generate with much calculation, and one that for some reason often sounds beautiful to human ears. It probably succeeds because human music is often fractal in nature in one way or another, and fractal music somehow satisfies something deep in the human psyche. Perhaps also we find fractal music satisfyinig for the same reason that we find some natural sounds beautiful.

However, FTS can't compose in any conventional form. It can't compose a symphony in the conventional sense. The feel of some of the pieces may indeed remind one of e.g. a movement from a baroque symphony - the feeling tone is somewhat similar sometimes - but the actual form is completely different. It can't compose a minuet, or a mazurka, or a pop song either. Some of the music it makes sounds fugal but it can't compose a conventional fugue, which is a highly structured from with many rules about how it needs to be constructed, and FTS doesn't have those rules programmed into it.

There are programs that can compose in these forms - for instance there is a program that can compose Chopin Mazurkas and is good enough already so that an expert is presented with one of its pieces will hesitate to say whether it is a piece by the program, or a less well known piece by Chopin himself. Try the challenge for yourself here - "The Robot Composer" (web page for a BBC radio 3 program in the UK of the same name).

However, at least so far, such programs are derivative. It can make Chopin Mazurkas as a result of analysing Chopin's output - luckily he wrote many Mazurkas to analyse. However, if it were presented with music prior to Chopin, it could never have made the leap and proceeded to invent the Chopin Mazurka. It is successful because Chopin wrote enough music all similar enough in style so that his style could be analysed and used to generate more music following a similar pattern. So at present anyway, such programs are essentially derivative.

I can see this even in the case of my own pieces. They are simple in form and with few notes, and not based on any particularly complex musical form. But the simpler things are often the hardest things for a computer to succed at if they are intuitive in nature. I can't see a computer program generating such pieces itself - unless I were to produce a substantial body of music all in the same form - in that case maybe it could analyse my "style" and the musical form and produce more of the same.

FTS succeeds indeed in producing new music, but that is because it is using a new form - well a very old form actually, but one extended in a new and unusual way. It happens to be one that is particularly suitable for computer programs to generate, and it isn't based on analysis of existing human compositions. Composers may use some of the material generated by FTS in conventional forms - but FTS itself isn't programmed to generate such.

Then another point is that the program itself can't select music that sounds good to a human. FTS could quite "happily" play a piece consisting of a single note repeated for hours, but to a human that would sound uninspiring. It can randomise the music, and if it starts from a piece of music that is already interesting or beautiful, it has quite a good chance of randomising it to make a completely new piece that is pleasant, sad, happy, inspiring, beautiful or whatever, and not necessarily similar in feeling tone to the original either. But the randomisation may also sometimes fail completely to produce anything interesting. It has no notion of what is sad, happy, beautiful, inspiring, or whatever.

I'm not trying to imply that music has to be inspiring - but FTS has no notion of what is harsh or noisy or discordant either. Sometimes FTS can make minimalist sounding music sometimes with some simple form that repeats and has no interest particularly of itself, but becomes interesting through the endless repetition with slight variations. However often the music it makes is just plain boring like the single note repeated endlessly. Even that is an acceptable aim for a composer to follow, I know, to bore your listener totally - but anyway, whatever type of music you want to produce, FTS has no notion of any such aim, and that is up to the composer.

I expect the style of music to depend on the composer too - different users of FST have different aims and expectations in music. Even if they produce pieces in which every note is computer generated, the choice they make of the seed, and other parameters such as the chord progression and the instrumentation and so forth will give their music a particular style and feel. Or they select a fragment from a particular point within FTS - that fragment is a kind of "found melody" that they may use in their pieces. Or they may use FTS along with a human singer or player who will interact with the music FTS produces in interesting ways. There are many ways that composers can use this material in their work.

Then finally, there are theoretical reasons for thinking that a computer program programmed in a conventional computer language can never duplicate feats of human reasoning. The basic argument is due to Professor Penrose. You can indeed create a computer program capable of reasoning, based on particular rules and axioms - there are already such programs around that are used to assist mathematicians in some fields of study, for instance the algorithms used to solve particular types of equation in the likes of Mathematica. Some programs can even generate new theorems. There is no question about that, the question is about the generality of such programs - could you produce an all purpose program capable of any form of reasoning whatsoever. If you could, you could write out the rules it uses. Then by examining those rules of reasoning, you can come to see a result, one of the "Godel sentences" of those rules, which a human can see to be true - and which can never be arrived at by following that system of rules. So human reasoning can transcend any system of reasoning that you can set out precisely in finite form. A computer program can't do that, and so a hman is always capable of excelling over a computer program in its reasoning. It doesn't always happen of course, a human can make many mistakes - but given time to go over the reasoning carefully, and after following the normal process of peer review etc as it is carried out in the mathematical community, then a human can always excell.

This basic argument convinces some, myself included, right away. However if you have very strong sympathies with the "strong AI" claim that a computer will one day be able to reproduce human reasoning entirely, then you may not find it convnincing yet. There is a vigorous debate on the subject. Professor Penrose has presented more refined versions of the argument to deal wiht various hypotheses about how a computer rpogram may one day be able to simulate human reasoning neverteless, despite the argument. You can read his arguments in his books "The Emperor's New Mind" and "Shadows of the Mind". You can also read what he has to say, and read the work of some of those he argues with, here: Symposium on Roger Penrose's Shadows of the Mind

Roger Penrose argues that we may be able to transcend computer programming as a result of quantum processes within certain microscopic strucutres within brain cells. It is possible that one day in the future we may be able to build quantum computers - a quantum computer consisting of only 20 atoms might be able to excell over all existing computers for certain tasks. So, might a quantum computer use the same approach as us, and so come to reason like a human?

Well, the quantum computer still has to be programmed. If programmed in a conventional fashion, then though the program can exploit massive parallelism to speed up the computation, it will still be written within some theoretical framework. A human can still look at the logical assumptions behind a particular program, and then find a transcending sentence for them if they are such as to permit conventional style programming at all. So we need a non programmed quantum computer in some sense. Roger Penrose thinks that the transcending reasoning comes out somehow from the interaction of quantum mechanics and gravitation - with gravitational effects causing collapse of the quantum mechanics waveform leading to a kind of "spontaneous observation" whenever a quantum mechanical system reaches a particular size and complexity. This could then lead, he thinks, to non computable reasoning.

So perhaps such a "gravitonic computer" might have to learn human fashion, and be brought up like a human child. Then maybe it could do something new. But then how do we know that its reasoning will be valid any more if it is only a computer? Humans seem to have a sense of "truth" which enables them to evaluate reasoning - true they get swayed by emotions too but one feels that the truth is attainable. The computer would have to have a similar sense of "truth" too. Who knows, maybe some day it might be possible, and if it were, maybe finally one would have computers capable of composing like a human. But then are they still computers in the current sense of the word if that happens? They remind me a bit of Asimov's "positronic robots", and perhaps some of the ideas that he explored in his novels may be of relevance in the future if such ever happens - his robots were envisaged as superb reasoners too. He even explores the idea of a "maladjusted" robot producing original and inspiring works of art in one of his stories. Try reading his "Light Verse", one of his earilier stories, from Buy Jupiter and Other Stories which you will also find in several of his robot collections.

[#top top]

Where can I find other composers and programmers of fractal music
Fractal music is now a genre of music in its own right and there are many composers and programmers involved in the genre. There's a forum for discussion of fractal music at YahooGroups, cnfractal_music. There you can meet other composers and programmers working in the genre.