From the help for Tune Smithy
Skip navigation Overview Seeds etc User guide Main Window Musical note intervals Scales Midi in Analyse sound
Hide Contents

MIDI Relaying etc

Skip navigation

Midi In Midi Relaying Controllers etc Midi Out Parts

Info - Relaying notes to and from FTS using a virtual midi cable - Loopback Circles - Setting FTS appropriately for synths or sound cards - Quick Start for Midi Relaying - Parts, Instruments and Effects - How use FTS to compose microtonally - Keyboard Scordatura and other microtonal notation systems - MTS tuning programs , Scales to Morph to - Scales For Parts - Scales For Parts Presets - Tonic shifts and Tonic Drifts - Combination Product Sets Layout - The Gene Ward Smith transformations



This page has help for the Midi Relaying View , and some special options that are used for both keyboard and Midi relaying.

This page is for those who use FTS to retune the notes played by a notation program, sequencer, or midi player.

If you want to use FTS with a music keyboard or other hardware, see Getting started on the Midi In page.

You may also be interested in the Chord Progression Player and the Polyrhythm Metronome .


Relaying notes to and from FTS using a virtual midi cable

Intro - Types of virtual midi cable for Windows operating systems - Windows logo testing - Trouble Shooting - How to use the virtual cables - What to do if the other program has no way to change the Midi Out device - A more complicated setup - Loop backs - Hardware cables


You need one of these if your intention is to use FTS to retune notes played in another program, for instance your notation software or sequencer. It is also often needed if you want to play notes from FTS directly through another soft synth or sampler.

A virtual cable is much better than a real physical cable as it transmits midi messages from one program to another at a far faster rate than is permitted with the midi cable protocols. Otherwise it functions in much the same way.

Once installed, you find new entries in the lists of Midi Out and In devices for all your midi programs - you can then choose one of these for output in your notation software, and for input in FTS - and then it is as if you had connected the Out of the notation software to the In of FTS with a midi cable - except it is a virtual midi cable, entirely done through software. It is a clever idea, and works very well.

Similarly you can connect the Out of FTS to the In of your soft synth or sampler.

The first virtual midi cable was Hubi's loopback - but unless you have a very old setup - it is long superceded now.

(back to start of section)

Types of virtual midi cable for Windows operating systems

The usual method to route notes around from one program to another is to use a midi cable. There are two ways to do it - hardware or software. This section will describe the software method which is the best for most purposes. The hardware method is similar - just connect a midi cable from the out of your computer back around to the in - but the virtual cable is easier to use, and relays streams of notes more quickly too - and you can't accidentally pull it out either!

For Windows 95/98/ME use Maple Midi Tools, or Midi Yoke. Maple Midi Tool has an installer - just run it. For Midi Yoke - particularly if you have Windows 98 then you may find it helpful to check out their pictorial install instructions. If you follow the instructions as described, there is nothing to go wrong.

For XP, use Loopbe1 , or Maple Midi Tools. Both are excellent and easy to install. You only get one device with the free Loopbe1, but if you purchase their Loopbe30 you can add up to 30 devices. Techy users can also add extra devices for Maple Midi Tools by editing the registry - and you can give them whatever names you like.

All of these virtual cables are extremely fast and comparable in speed.. You may well find that some of them are at least ten times faster than a hardware cable. Midi Yoke NT is perhaps the fastest by a small margin, and is particularly fast at relaying the larger sysexes - relays even a full bulk tuning dump in about the same time as a note on.

If you have XP, and don't use Giga, then Midi Yoke NT is otherwise excellent for XP. It's installation is dead easy on XP too. But the download page is a bit confusing (as of writing). The natural thing is to click on the Installation: Windows XP link. But you should click on the download link instead

On the Midi Yoke page click on the Download link, and then download MidiYokeSetup.msi . This is a completely automated installer. Then as it recommends, you can ignore all the instructions later on down the page for manual installation of Midi Yoke NT on XP as they no longer apply when you do it this way.

Don't install Midi Yoke NT on XP if you have Giga on the same computer, as the two programs are unfortunately incompatible (just if Midi Yoke NT is installed, not even running). If you do install Giga, then uninstall Midi Yoke NT first from Add / Remove programs.

(back to start of section)

Windows logo testing

If you get a message about Windows logo testing when you run the installers for any of these programs, just say yes it is fine, go ahead. The logo testing is mainly relevant for commercially produced programs by the largest companies. The yearly fees for this are very high, probably because of all the testing and verifying the logo signing companies have to do. So smaller companies and authors of free programs never apply for it however good their software is.

Yet often as a user, one already knows that the software is fine without logo testing. Often there is a large community of users who use them and no-one has reported any problems with them. That is the situation with these virtual cables, which are widely used with music software, and widely recommended.

The only known issues (as far as I know, and no FTS users have reported any other ones either) are the ones about Giga + Midi Yoke on NT and a very minor error message that can come up during the install of Maple Virtual Cable, which you can safely ignore. See the Issues and trouble shooting for more information.


Issues and trouble shooting

There is a well known incompatibility between the XP beta of Midi Yoke and Giga, which has proved to be impossible for the Midi Yoke programmer to do anything about. It only applies to XP users of those programs who try to install both of them - you should only install one or the other. If you just have Midi Yoke installed on XP, not even running, Giga tends to freeze, or run very very slowly. That's the only problem I've seen mentioned anywhere or had reported by any FTS users.

If this has happened to you, you can remove Midi Yoke from Add / Remove programs. The older versions of Midi Yoke for XP, if you happen to have one of them, need to be removed in another way - you go to Start | Settings | Control Panel | Sound & Audio Devices | Hardware - then click on one of the Midi Yoke Junction devices and click Properties | Remove and it will be gone.

You may get this error message when installing Maple Virtual Midi cable: "Warning: The midi driver will not start because there is no free space for midi entries in the windows registry. The driver has detected a duplicate midi entry in the registry (midi1-wdmaud.drv) which it should be able to harmlessly remove...".

It should be fine to continue and let it do it, if this happens to you. It seems it is just a case of Windows being a bit eccentric and creating unnecessary duplicate entries in the registry as a result of the user reinstalling soundcard drivers etc, or plugging a USB device into different USB slots. For details:

If you get this message and want to be ultra careful, you may wish to set a system restore point - or export a copy of your registry - before you install Maple Virtual Cable on the very very remote possibility that you want to restore the registry to roll back after the change.

Sometimes users aren't sure how to uninstall Maple Virtual Cable - if you have a long list of programs in Control Panel | Add or Remove Programs. Look for the Hurchalla entry there, and you should find it.


How to use the virtual cables

To send notes from your notation software to FTS:

In your notation program or sequencer, select one of the virtual cable ports for output to play the notes (it probably has an option somewhere to set the Midi playback device). In FTS, select the same virtual cable port for input - usually it has exactly the same name, or the same name with "In" instead of "Out".

This may seem a bit counter-intuitive at first - but it is just like connecting your midi keyboard to the computer. Normally you connect the Out of your Midi keyboard to the physical Midi cable, and then connect the cable around to the In of your computer. Similarly here you need to connect the virtual cable to the Out of your notation software or whatever, and to the In of FTS. You do that by selecting it from the Out and In menus of the relevant programs.

This diagram shows how it works, taking Maple as an example for the virtual cable:

Midi player, Sequencer or Notation software (Out) Maple Midi Out Port 1 Maple Midi In Port 1 FTS (In)

For more about how to use FTS with your notation software see Working with your sequencer or software notation ,

To send the notes from FTS to another  program or soft synth:

Select one of the virtual cable ports for output in FTS, and select the same numbered port for input in the soft synth.

Then just select Maple Midi In Port 1 as your In device in FTS and you are done.

What to do if the program has no way to change the Midi Out device

If your program doesn't offer you any choice for the Out device (midi players such as Windows Media player for instance often don't), it almost certainly means that it uses your computer-wide setting for Midi playback. You can still use these programs with FTS, with a little care.

To change the computer wide setting, go to: Start | Settings | Control Panel | Multimedia | Midi . For instance, you can select Maple Midi Out Port 1 there. 

Take care here - this is the device used by all similar programs on your computer whenever they play midi notes. It may well be the device used to play midi clips in web pages for instance. 

So when you are finished, be sure to set it back again to a device that will play notes directly on your soundcard or a soft synth. If you don't do that, midi clips in web pages will go silent whenever there is nothing connected to the other end of the virtual cable.

A more complicated setup

Often the complete setup for using FTS to retune your notation software goes something like this- where the arrows show how the midi notes get routed:

Sequencer or Notation Program (Out) Maple Midi Out Port 1 Maple Midi In Port 1 FTS (in) FTS (Out) Maple Midi Out Port 2 Maple Midi In Port 2 Soft synth or sampler (In)

That may perhaps look a bit confusing - but don't be put off if so. It is all very easy when you get down to it - once you are used to how it all works. Here the thing to notice is that we are now using two separate virtual cables - the  Maple Midi In / Out Port 1 to connect the notation program to FTS, and theMaple Midi In / Out Port 2 to connect FTS to the soft synth or sampler.

It is just a matter of going to the In and Out menus in the three programs and selecting the relevant devices in each one, as shown.

In this case:

Sequencer or Notation Program (Out): Maple Midi Out Port 1
FTS (in) : Maple Midi In Port 1
FTS (Out) : Maple Midi Out Port 2
Soft synth or sampler (In): Maple Midi In Port 2

Loop backs

One thing you do need to watch out for is that you need to be carefull not to make a Midi Loop - not to loop the output of a virtual midi cable around to the input of the same program. For instance, avoid this configuration: FTS (Out) Maple Midi Out Port 1 Maple Midi In Port 1 FTS (In) - or any more complex loop involving daisy chaining several programs together - because if you do so then you create a loopback and notes stream around it at the maximum speed possible.

Midi notes are relayed at an extremely high priority, so this has the potential to bring your computer to a standstill. Using older methods, when this happened you would have to switch off your computer and start again, and you lose any unsaved work when this happens of course. This can still happen in some situations if you use a hardware loopback.

However, FTS and most of the virtual cables nowadays have protection against loopbacks, so this isn't a great issue any more - what generally happens is that FTS closes your Midi In and pops up a message to let you know what has happened. If the FTS message doesn't kick in before the virtual cable (usually it does) then the virtual cable will pop up a message instead and disable that particular port. The usual system is that the port gets automatically re-enabled when you re-boot. The virtual cable also may have an option to re-enable it - for instance loopbe1 places an icon in your system tray which you can right click to re-enable it after a loopback.

In the case of Midi Yoke NT, you can re-enable the junction straight away via Start | Settings | Control Panel | Sounds and Audio Devices | Devices | Midi Devices and Instruments - then click on one of the Midi Yoke Junction devices and click Properties | Settings .

For more about Midi loops, and for details of the method, see Loopback Methods - Details .

Hardware cables

If you can't use the software method for any reason, try the hardware method.- just connect a cable around from the midi out of your card back to its mid in - again be careful to avoid creating a Midi loop when you do this. Just make sure that you connect the Midi in of your soundcard to a different program from the Midi out. Again FTS has protection against loopbacks for hardware cables too, so if you connect the Out of FTS back through to its In then that's no problem you just get a loopback message - but if you do this with a program without loopback protection, your computer may stop responding.

Hardware cables have a disadvantage if you use them with very fast streams of midi notes - particularly the fast clusters of notes you can get in the faster fractal tunes. Midi events are sent maybe about ten times slower or more when they get sent along a cable, as compared with the exceedingly rapid transmission of midi events from one program to another internally within your computer. So a cluster of many midi notes in a short period of time may take a while before they can all get through the cable - they get caught in a queue waiting to get through. This is a matter of the speed of transmission of the notes rather than a latency issue. You can measure the speed of the loopback method your are using from Out | Options | Midi Out / Save Timing | Midi Relaying Speed Check .

If for any reason you can't work with virtual cables, another thing you can do which can be a help is to save midi clips from your notation program in midi format 0, and then you can play them in the retuning midi player in FTS. Nowadays though with the virtual cables getting easier and easier to setup and use, nobody seems to have any problems in this area any more apart from the well known Giga freeze issue with Midi Yoke NT on Windows XP.


Loopback Circles

This is something that can happen if you connect the midi out of a program direct to its midi in or indirectly through other programs and eventually back to its own midi in.

It's nothing to do with using a software "cable" as such, as the same thing can happen if you connect your midi out to your midi In via a physical cable.

Messages can circle round and round for ever. Programs may then hang as they try to cope with such a fast stream of midi data with no breaks in it. If this happens, the computer will probably stop responding too, as the midi messages are high priority and may use all the system resources, when streamed so quickly.

Midi Yoke has automatic protection against loopbacks, as do some of the other virtual midi cables.

FTS has automatic protection against circular loopbacks too, in fact, timed to cut in just before the Midi Yoke one. 

FTS is also protected if you physically connect your midi out to your midi in using cables. It will detect the loopback condition, and close Midi In, with a message.

For details about how the loop back protection in FTS works, see circle checks .



Setting FTS appropriately for synths or sound cards

Synths and sound cards - Monotimbral synths

Synths and sound cards

To set FTS up appropriately, run the Out | Out Device Capabilities wizard . It will play some notes and depending on your answers to the questions, will set up FTS appropriately to work with your soundcard.

Or go to Out | Options | Out Device Capabilities and depending on the type of device you are using, click the button for one of these presets:

  channel ten is reserved for non melodic percussion several voices can be played at once in the same channel
GM Synth Yes No
Non GM Synth No No
Sound card Yes Yes

The GM Synth and Sound card presets treat channel ten as a non melodic percussion channel while the Non GM Synth preset treats it as a melodic channel like all the others. The Sound card preset lets one play several voices simultaneously in the same channel, e.g. you could have flute and oboe both playing a note in the same channel. This makes it possible to retune more complex microtonal scores as there are more channels available for the pitch bends. The two Synth presets keep to only one voice at a time per channel - that is because many synths can't handle more than one voice simultaneously in the same channel.

The Sound card option here is likely to be suitable for GM synths on modern sound cards and also for GM soft synths such as the Yamaha or Roland one.

Musicians using FTS with a synth or sampler will probably want to select Non GM Synths option as many of these will play only one voice per channel and most don't implement a special non melodic percussion channel for channel 10.

Actually you can also configure all these things individually in this window too, and other settings too - these buttons are just a quick way to change several of the settings in one go.

top , start of section

Mono timbral synths

Now, one thing many run into at this point is that they discover that a particular favourite synth or soft synth is mono timbral . This means that effectively it has only one channel for FTS to use - all the channels are the same as far as it is concerned. You can only apply a single effect at once, only one pitch bend and so on. If this is the case go to FTS | Out | Options | Midi Output Channels -and set the output to a single channel. Just enter one number here - usually it makes no difference what channel you use for a monotimbral synth so you could just set FTS to play all your notes on channel 1. Or more generally, if you are using several midi output devices at once, and only relay some of the parts on your monotimbral synth, go to Out | FTS | Out | Set Channels for each part, and choose to play in a single channel for any of your parts which are played on the monotimbral synth.

You will still be able to play parallel octaves and other twelve equal intervals. However chords with other types of interval can't be played on these synths, because they require several simultaneous pitch bends.

Sometimes you are able to play several copies of the same synth at once (on the same computer). If so then you can relay the notes for several monohonic lines using Out | Ok to play on several devices at once, and Out | Set parts for each device . - this depends on whether you are able to run several copies of the synth at once.

Some monotimbral synths from Native Instruments now support MTS tuning programs too, which is ideal for microtonal programs such as FTS - though monotimbral, they support pitch polyphony in this way - lets hope that this example will be followed by other companies too! For those types of synth, see MTS tuning programs , later on this page.

If you prefer the music on your mono timbral synth to be monophonic, then set the Max Polyphony (in same window) to 1 as well, and you will then find that you are unable to play more than one note at a time, even when your notes are at intervals of octaves or smaller twelve equal intervals.

Synths often have special unique sets of instrument sounds, not the GM set. In that case you may be more interested in the instrument numbers rather than the GM voice names. You can add instrument numbers to the Voice | Change Voices Menu or Descriptions - and you can even customise the instrument names too. FTS also has an option to read the instrument names from a DX7 sysex if you have an FM synth and use one of those to set up its instruments. See tip of the day 59 change voice menu names . You can also set the Voices menu to show the Roland GS or Yamaha XG type instrument names (which work by setting the bank number for each instrument appropriately in the Parts window when you select them) - or any other similar system of instrument names with each name associated to a combination of patch number and bank number. You can edit and customise the menu in that way - and there are some presets to get you started.

Many users prefer to change instruments at the synth instead of doing it in FTS. All the instrument change messages FTS sends then may be a nuisance to you - if so, just select Voice | Skip Midi Out Voice Selections . This disables all MIDI voice selections (aka patches, program changes) in the FTS output.

top , start of section

Quick start for Midi Relaying

Okay, now the notes are getting relayed from your notation software or sequencer to FTS. So, how shall we retune them to a particular scale?

First make sure you are in Tasks | Midi Relaying . Click the Standard Settings button. In the previous sections on this page we read about Setting FTS appropriately for synths or sound cards - if you haven't seen that section yet then have a look to check you have FTS configured appropriately for your equipment.

Now that you have everything set up appropriately for your synth or sound card in FTS, select the scale you want to try.

Then select an arpeggio . The arpeggio will be played using successive white notes on your staff. Any scale notes betweeen notes of the arpeggio will be played as accidentals - if there is a black note in the appropriate place that is - otherwise the black notes play the same pitch as an adjacent white note.

If you want to use a standard twelve tone type tuning, then you need know no more than this - you choose a twelve tone scale, and you select diatonic as the arpeggio. Also set the pitch of the 1/1 to middle C (assuming you want the notes untransposed). You do that from the Pitch window. Then the white keys play the C major scale and the black notes play the in between accidentals as desired.

For more about how this all works, see Play in arpeggio (etc) drop list if you haven't read that yet.

If you want to compose in a scale with rather few notes to an octave, then probably the easiest thing is to play it from the white keys and just ignore the black keys on the staff.. More generally if the scale has many notes to an octave, one will need to work out an appropriate keyboard mapping so that the accidentals are in the right place, depending on how many notes your scale has and which of the scale degrees you want to play from the white notes of the staff.

For practical tips about how to do compositions retuned to particular types of tunings, take a look at the worked examples in the How use FTS to compose microtonally section.



Parts, Instruments and Effects

For an introduction to the notion of a part, see Parts in the basic concepts page. The way this works is different depending on whether you use the standard settings for midi relaying or the standard settings for a midi keyboard with keyboard regions. For midi relaying, the flow of notes is like this:

Midi In channel Same numbered FTS part Various Midi Out channels depending on the pitch bend needed

You can forget about the rightmost sides in most situations and just accept that FTS will find an appropriate channel to play your notes. If curious you can watch them being remapped to the various channels from Out | More | Notes in play .

The main thing is that one should know that the FTS parts aren't channels (even though they function much like them for practical purposes) and that this channel remapping is going on in the background, but generally there isn't much need to think any more about them after that unless for some reason you need to restrict the output notes to particular channels on particular devices.

So then we just have

Midi In channel Same numbered FTS part

which is easy enough to work with. The usual things you can change via midi, such as the controllers and so on - gets applied to the FTS Part - and then affects the way the notes for that part are played, wherever they get sent.

To change the instrument for a part in FTS via notes relayed from Midi In, you simply set the instrument for the channel in your notation program or sequencer in the usual way just as you would if you were relaying to a normal Midi device. This then gets sent to FTS on the appropriate input channel and so changes the instrument for the same numbered part in FTS.

Often the way it is done in practice is that you select a staff of the score in your notation program, then select an instrument and a midi channel to use to play its notes - this will work just fine with FTS. You can watch the voice for the corresponding part change in the Parts window in FTS. From then on all the notes played in that part will be played on that voice, no matter which channel they are relayed to. What is happening in the background is that FTS sends on all the appropriate instrument selections to appropriate channels before it plays notes in them, to make sure this happens.

You can also apply an effect to a part in the same way. Probably in your notation program you normally apply an effect to one of the staffs. Well just do that in the usual way too and it will work just fine with FTS. Again, you can look in FTS to see which effects are being applied to which parts. T o see where the notes get panned left or right you go to Out | Options | Pan , and for modulation (vibrato) and tremolo: Out | Options | Mod Trem . .

To see how FTS is responding to Portamento and Legato, see Out | Options | Portamento / legato and Monomode .

Legato here is a way to play the notes in a flowing fashion - without re-triggering the attack each time. The effect is like a legato note on wind instruments, etc. In order achieve do that, only one note can be played in a channel at a time, and the legato notes should be played overlapping. A note that is played when the previous note is still held down gets played without the attack.

Portamento adds a pitch glide from the previous note before every note played, rather like the late nineteenth or early twentieth century style of string playing in which often each note got joined to the next by a smooth swooping glide along the strings.

The legato and portamento effects work best for music which is monophonic in each part, which is why they are paired with Monomode in this dialog. Not all synths support these. Unfortunately it is no longer available, but if you have the Yamaha soft synth, it does Legato without triggering the attack if you couple Legato with Portamento with a slide time of 0.

In fact, you can use any of the Midi controllers with FTS. To watch the other controllers, see Out | Options | Controllers for parts . Again you just change these in your notation program in the usual way.

All these voices and effects can be changed in FTS too using the same windows.

If you have a pitch glide in your score, usually the notation software will send pitch bends to gradually glide the pitch of the note. FTS will bend the note from its retuned position by the amount of the pitch bend from Midi in.

If the glide is from one twelve equal note to another in the score, then it will turn into a glide of a similar amount in FTS, so may over or under shoot. However there is a new option in FTS that you can switch on to deal with this situation. Try In | Options | Pitch Bend Options | Adjust pitch bends to current Scale or Arpeggio .

FTS may need to resound the note in the middle of its glide for longer glides of more than a semitone This always happens if they have to go more than a tone away from the original note. Glides of a semitone or less are usually okay as there is always that much leeway between the notes for glides even after applying the "instant pitch bends" to retune them.

If you want to use longer glides though, without a resound - this may be possible in FTS if your device lets one increase the pitch bend range - in this case you would explore In | Options | Kbd Options | Pitch bend range - semitones .

The parts window also has a few other options - to set the volume level for the part, to transpose it up / down e.g. by octaves, and to set the Bank number which is needed to distinguish between instruments for some synths. In fact you can set the bank number as part of the instrument definition - see Voice | Change or Ed. Menu where you will find an option to add more voices such as the GS or XG instrument sets that use bank numbers to add extra instruments.

You are likely to do most of the changes of controllers and instruments in your notation program - these options to change them in FTS are especially useful for those doing music keyboard retuning or for the fractal tunes.



How to use FTS to compose microtonally

If you haven't seen it yet, you may also like to read the FAQ entry:

How do I use FTS with my music notation software or sequencer to compose microtonally?

There are special considerations if you are using FTS with GPO - see Rick McGowan's introduction Microtuning the Orchestra

For a quick start and to try out some examples right away to see what you can do with FTS and your notation software, see the Set up first, then the 12t Set up, then on to the scordatura example and later examples.

Set up - Twelve tone retuning - 12t Set uptwelve tone example - Score for retuning midi player - A few notes relevant for all these examples  - scordatura - scordatura example - octave padding - accidentals - non octave - other examples .

Set up

In the main window for FTS, first make sure you have it all set up for Midi relaying. Find the Midi Relaying task in your Tasks folder on your desktop - or change to Tasks | More | Midi Relaying and click on the Standard Settings... button for the task. Amongst other things, this sets FTS up to play each midi In channel on a different FTS part which is what you normally want for notation software retuning.

To get the music from the notation software to FTS, you need to use a virtual midi cable such as Midi Yoke - these work by adding extra devices to the In and Out Menus of Midi programs. See Relaying notes to and from FTS using a virtual midi cable .

Set up your sequencer to play notes on the relevant Out device, e.g. Midi Yoke 1. Then set FTS up to receive notes on the same device in its In menu.

In FTS, choose an appropriate Out device, and run the Out | Out Device Capabilities Wizard to test your output device capabilities and set up FTS appropriately to work with it.

top , start of section

Twelve tone retuning

Let's start with the case that is easiest to start with for composers who are used to writing music in the twelve tone system - a twelve tone score, but using some other historical or modern tuning instead of twelve equal.

For instance, let's try a piece in.quarter comma meantone piece. This is a tuning which was in vogue in the period leading up to Bach's time. Many of the major thirds are pure just intonation 5/4s, while one in three of the major thirds are sharp, and one of the fifths is very sharp. It has other interesting intervals that one may want to use in ones composition. You can find information about this tuning at Joe Monzo's Quarter Comma Meantone page. 

Whether you plan to write in it in a conventional fashion or explore its hidden exotic intervals, it would be nice to be able to hear the notes in quartet comma meantone while you are working on the piece :-).

Well, FTS can help you with that. The software notation program or sequencer you use almost certainly plays its notes via midi, and FTS can play midi notes retuned in any way you like. So all you need to do is set your notation program to use FTS to play the midi notes, and set FTS to use the desired tuning, and you will hear all the notes tuned as intended. 

top , start of section

Twelve tone example Set up

This is the easiest of the examples as there is very little needed to be done to set it up.

For this example, all you need to do now is to select quarter comma meantone as your scale in FTS.

You can  leave the other options at their standard settings. So you can leave Arpeggio at  Diatonic, and leave Play Arp. from at the standard setting of White notes.. The black keys then play the in-between notes of the scale). See the Graham Breed Blues scale example: accidentals for a discussion.

That's it - you are now all set up to compose directly in quarter comma meantone. Play your piece in your sequencer / notation software, and you will immediately hear it in quarter comma meantone!

Trouble shooting (brief)

If this doesn't work, go back to the Set up section and make sure that you have everything set up properly. Particularly, that you have selected a virtual cable such as Midi Yoke NT or Maple sound as the Out device in your notation software, and the same device for input in FTS - and that you have selected some device that can actually play the notes for output in FTS.

You can check it is playing sounds in FTS using e.g. its PC keyboard player, or click the play scale etc buttons in FTS. If you don't hear anything, then go to Bs | Play Control - Volume in FTS - and check you have a suitable device selected and not muted,- there may be more devices available there from Options | Properties. Check also that the In device is open in FTS - look at the In menu. If it isn't, then select Open Selected Device Now.

top , start of section

12 tone example - Andante in QC meantone

Here is an example, my Andante in Quarter comma meantone for flute and harpsichord

Score (or open in new window )

This score is conventional, except for the instruction to retune to QC meantone - other tunings of this piece can be tried as well. I've put the instruction into the Lyric line for the NWC score. 

To retune in FTS, use the standard settings for the Midi Relaying view, and just set the Scale to Quarter Comma Meantone

Midi Relaying file to set FTS up for you like that: andante_in_c_major_source.rly

Here is a NWC file for retuning. 

The NWC files here are saved scores from Noteworthy Composer . You can also use the free NoteWorthy Player to play them -  in the player, you can select the Midi Out device from Tools | Options | Midi. 

Here is a midi file which you can open if you have Finale, Sibelius or one of the other notation programs - most should be able to read midi files: andante_in_c_major_source.mid

Notice that this piece plays on two instruments simultaneously - it is multi-timbral. This is easy to do as a user of the program - there is some complicated channel remapping going on behind the scenes, but FTS does it all automatically for you. 

Here, I assigned the flute to one staff in NWC, and the harpsichord to the other one, and made sure that each staff plays on a different Midi channel. 

You don't need to do any more than that to get it to work. FTS  plays all the notes for each part on the correct instrument. If you want to know the details of how it has achieved this, you can see it from Out | More | Notes Currently Playing | More..

Of course if you are used to Sibelius or Finale you'll be using those programs. They do have more features and options. NWC has a very good design philosophy however and is an excellent program for fast entry of scores - I find it particularly congenial - it well suits my own working habits! Here is a eulogy about NWC and how nice I find it to use. Of course it depends on what you need and what your requirements and working habits are. Anyway I will use it for these examples as my compositions are already in this format.

top , start of section

A few notes relevant for all these examples

You need some way to know which tunings to use for which of your scores.

If there is just a little information needed, such as the desired scale and arpeggio, with everything else at the standard settings in FTS - it may be enough to just to add a note to your score. To be sure you use the same tuning every time, paste the scale itself from FTS into the score. Then whenever you work on that piece again in the future, do the standard settings again in FTS (if nec.) and copy and paste the scale back into FTS. If necessary do the same with the arpeggio, or anything else you need to keep for a particular score. This is a possibility when there isn't too much information needed to set up FTS appropriately

In these examples, I put the scale - the ratios / cents values - into the lyric line, together with any other retuning instructions that may be needed for a particular piece - that is my usual habit with NWC. If you don't want it to be visible - just put it in an non printing text field somewhere on the score for your own future reference.

If you have a lot of complicated settings to keep for the score, you may want to save a Project File from Tune Smithy. To make sure that you can always see which project goes with which of the saved scores, save the project with the same name as the score and in the same folder. Whenever you open that score, open its same named project, and you have FTS all set up ready to play the score.

The project saves everything, all your Tune Smithy settings including details such as what notation to use to show the scales and notes in FTS, and also the window positions, skins etc. So, it may be more than you need for short or straightforward pieces, but this method is very useful for large complex projects. In fact, the skins can be useful to distinguish between different projects if you have several open at once, and it is often useful to set up all the windows particularly relevant to the project, and use the Help | Show the current windows at start of session (F4) option in FTS to show them all whenever you open that project in the future..

The next option is to save a  Midi Relaying file from FTS, again using the same file name. That is the best method if all you want to save are the settings that affect midi relaying. This saves all your controller settings in FTS and so on, but not things such as notations to use, window positions and skins etc.

If you just want to save the minimum information needed to tune it, save as a Retuning Info file

The Retuning Info file saves your current scale and arpeggio and also the  midi relaying settings for In | Options , Kbd. Options , Kbd regions , Scales For Parts , and Scales to Morph To . So it saves the settings most relevant for retuning  - but doesn't save the choice of controllers etc. 

top , start of section

Saving your score for use in the Retuning Midi Player

It is  possible to bypass the use of virtual cables by using the Tune Smithy retuning midi player (which you will find in your Tune Smithy Tasks folder)

Save your piece from the notation software as a midi file - best in Midi format 0. Just save it as it does normally, as a twelve equal midi file,

Then save a Retuning Info file from FTS using File | Save As | Files of type | Retuning Info (*.RTN). Be sure to save it with the same file name as the midi clip (also in the same folder), so that the retuning midi player can find it. 

Now whenever you play that clip in the retuning midi player it will be played in the desired tuning, You need to have Tasks | Retuning midi player | Read tuning info file if present selected for this to work (it is the standard setting)..

The idea is that it is like a tune that you can play back in different ways, but always with the desired tuning. So - a sort of a way of extending the capabilities of standard midi just a bit by making it possible to set the preferred tuning for a midi file using another file of the same name with tuning info.

top , start of section

Scales with other numbers of notes per octave - scordatura scores

Now, that's just a start, because one may want to explore scales with other numbers of notes to an octave, maybe more than twelve for instance. Also one may be interested possibly in nonoctave scales too - ones that repeat at other intervals instead of the octave

This brings up new issues - if you just select any scale in FTS, and then use it to retune a conventional score, depending on the number of notes in the scale, individual notes in the score may no longer sound anywhere near the written pitch.

An example may help. Suppose you have a scale in FTS with distinctions of # and b such  as say a 17 or 19 note scale. As that is too many notes to fit in a 12 tone octave on the score, you might set the scale to be played from successive notes in the score, like this:

Score:         C  C# D Eb E  F  F# 
Played in FTS: C  C# Db D D# Eb E 

In this case the note E on the score plays a D#, and the F# on the score plays an E. So the notes you hear are nowhere near the expected pitches for a twelve tone score.

Generally, depending on the number of notes to retune, it is likely that the octave on the score will no longer play an octave in FTS.

This is potentially confusing for a composer on first encounter - but you can get used to it. You can get used to the pitches played by the notes on the score, and the relationships between the notes, and where the chords are in the new retuned score. In fact, some find it refreshing, something that leads one to new avenues of exploration.

Anyway whatever it's advantages or disadvantages for a composer, the result is easily playable by a keyboard player.

The keyboard player doesn't even need to learn what interval the "octave" on the score beforehand to sight read it. Just give him or her your original score as shown in the notation software, and then tune the keyboard identically to the way you tune your score in FTS. So for instance if the score shows an F#, the keyboard player plays the F# key on the keyboard - it will then get retuned by FTS to whatever pitch the composer wishes that key to play. In fact, the keyboard player doesn't even need to know any of the pitches in advance of pressing the keys to sight read such a score. All that is necessary is that the keyboard is tuned in advance to match the score (either by playing through FTS or by tuning it appropriately in advance by whatever method if acoustic).

This is like playing a string instrument with a scordatura tuning - i.e. with the strings retuned to some tuning other than the standard one. So for that reason, to coin a word, let's call this a scordatura score, a term most usually familiar to string players.

For those new to it, here is a bit on the historical context: See this Scottish fiddle tune (on-line). Another example of scordatura is Bach's cello suite number 5 (on-line), intended to be played on a 'cello with the high A string tuned down to G. The idea is that when you read the score (in its original form) the notes on the score for the G string indicate where to place the fingers, rather than the intended notes to hear. So a G as played for instance will be shown as an A on the score, an A will be shown as a B and so on.

A 'cello player can play such a piece from the Scordatura score on a suitably tuned 'cello, using the familiar hand / eye coordination. The A on the score would normally be played on the unstopped A string, so using their familiar hand eye coordination, they play it as such, but because the string is retuned to G, the note they hear is a G. Scordatura is also a feature of music written for the eighteenth century viola d'amore .

So lets call the score you make for retuning via FTS a scordatura keyboard score, since it tells the keyboard player where to place his or her fingers on the keyboard. It doesn't  represent the actual pitches heard. This is a relatively new thing because it is only with software that keyboards could easily be retuned to any tuning like this

So, the advantage of a scordatura keyboard score is that it can be sight read by a keyboard player with no further training, using the same hand / eye coordination that they use for a conventional score. Scordatura keyboard scores are suitable for any keyboard instrument, and also other "fixed pitch" type instruments such as a harp, xylophone, accordion, or glockenspiel provided that they are capable of being tuned to the scale shown on the score. Players of these instruments have nothing new to learn to play your piece. They just need to retune their instrument or obtain or construct a suitably tuned instrument for the piece and they are all set to go.

It's not so easy for players of other instruments such as wind, voice, strings etc. to read such a score, so ideally one would want to be able to generate both types of score in one go. See Keyboard Scordatura and microtonal notation systems .

Anyway whatever the practicalities for performers, it is a good way also for a composer to get notes quickly on the paper and hear it as you compose in the desired tuning, because you can do it using the existing conventional composing packages with all the features they have. Also many composers work with a keyboard to hand to try out ideas - and for such composers the scordatura keyboard convention is a natural one to use. You can easily pick up your keyboard and try out a few ideas in the middle of composing the piece. To test ideas and variations on your score, just read from your score as you would normally do when testing a piece on keyboard, but be sure to use a keyboard retuned appropriately to match the score.

I think later when someone makes a truly microtonal notation software they will surely need to include the option to generate a scordatura score and to compose directly in it . But a truly microtonal software program would let you generate other types of scores as well for other instrumentalists automatically - unfortunately no such program exists yet anywhere in the world as far as I know. It is a fairly major software challenge, surely rather harder than a twelve tone notation software, and may well require some new ideas too to make it easy to program - but it's not an impossible one. (But beyond my current abilities as far as I can tell, FTS itself is more than enough work for me as it is, without trying to launch into a microtonal notation software program as well).

Let's hope one gets developed!

Meanwhile though, keyboard scordatura works well enough for the time being.

Let's look at some examples of these keyboard-scordatura type scores.

top , start of section

Scordatura example - Days end song

Day's end song for Oboe and Cor Anglais. (or open in new window ).

Midi clip (retuned): days_end_song.mid

NWC score (for retuning): days_end_song.nwc

Midi source (for retuning): days_end_song_source.mid

Midi Relaying file to set FTS up to retune it: days_end_song_source.rly

Again, this is just an ordinary looking twelve tone score - apart from the lyric line which reads:

White notes play 9/8 5/4 3/2 9/5 2/1 .

So now here is how one would listen to the score in FTS:

From the Midi Relaying view, click the Standard Settings... button (you don't have to do this for every piece you do, but if you have been playing a fractal tune or have modified some of the more way out settings, you need to do it).

Set the Scale to 9/8 5/4 3/2 7/4 2/1 as shown in the score. You can use the Scale & Arp as text button, or go to the More version of the main window to fine the scale text field.

Set the Arpeggio to Follow scale .

Leave Play Arp. from at the standard setting of White notes .

One can also add a note to the score say what pitch to use for the 1/1 - I use the convention that if omitted, the 1/1 is concert pitch c. To set the pitch for the 1/1 of the scale in FTS, use the Pitch... window. The Standard Settings... button resets it to concert pitch middle c.

For those who are following this with NoteWorthy Composer (or the free Note Worthy Player),use days_end_song.nwc (for retuning to the scale). Relay from NWC to FTS, set up the scale as just described, and you should hear the same pitches played as you hear in the example midi clip. If using other notation software, then start with days_end_song_source.mid.

Note, as this scale is five tone, then the A of the score actually plays a note an octave above the C. In fact, the scale is the normal just intonation pentatonic scale apart from the 7/4 (Bb in C major), which transforms it into a scale with four successive whole tones and including the 1/1 5/4 3/2 7/4 dominant seventh. I could have used alternatively 9/5 or 16/9 (original version had a 9/5 here). The 7/4 gives the most harmonious chords. The 9/5 gives a fairly strongly beating 25/18 between the 5/4 and the 9/5 of the dominant seventh chord.

Here for comparision are all the same files, for the original version of the same piece with the more vibrant ( beating) 9/5s:

Day's end song_orig for Oboe and Cor Anglais. (or open in new window ).

Midi clip (retuned): days_end_song_orig.mid

NWC score (for retuning): days_end_song_orig.nwc

Midi source (for retuning): days_end_song_source_orig.mid

Midi Relaying file to set FTS up to retune it: days_end_song_orig_source.rly

In use, this method of composing is pretty much like writing any ordinary twelve tone score. After editing the score, you click the play button in your notation software, and because everything is being relayed via FTS, you hear it with the correct re-mapped pitches. This method lets you hitch into all the facilities of your existing sequencer / notation software. .

top , start of section

Octave padding example - Hexany recorder trio

When working with scales of six or less notes, sometimes it is nice to be able to show octaves of the scale as conventional octaves in the score. This is also easy to do when working scordatura-keyboard fashion - add a duplicate note to the scale to make it into a seven note scale with a repeating note.

This method may also make it a somewhat easier score for players of other (non keyboard type) instruments to use.

Here is an example with the scale padded out to an octave: my Hexany Recorder Trio (or open in new window )

Midi clip (retuned): hexany_recorder_trio.mid .

NWC score (for retuning): hexany_recorder_trio.nwc .

Midi source (for retuning): hexany_recorder_trio_source.mid

Midi Relaying file to set FTS up to retune it: hexany_recorder_trio_source.rly

To retune, set the Scale to  8/7 6/5 48/35 8/5 12/7 12/7 2/1 as shown in the score. Set the Arpeggio to Follow scale . Leave Play Arp. from at the standard setting of White notes .

I wanted to try playing along with on recorder using alternative fingerings to play in the hexany tuning. Since I wanted to read it on the recorder, this was easier if the octaves on the score corresponded to what I know as octaves, e.g. all the Cs plays 1/1 and octaves above / below that, the D of score plays the 8/7 etc. Anyway this is the kind of thing one can experiment with and see what one finds easiest.

I did this retuned midi clip in NWC - just played it all the way through in one take retuned in FTS - you can do this because of the way NWC respects all the dynamics, tempi and flow directions in the score. You can also save it to a twelve equal midi file in NWC and play that in FTS using the retuning midi player.

top , start of section

Example using accidentals - Graham Breed's blues scale

Let's take another example, this time my tune in Graham Breed's blues scale (or open in new window ),

Midi clip: Graham_Breed_blues_scale.mid .

NWC score (for retuning): Graham_Breed_blues_scale.nwc 

Midi source (for retuning): Graham_Breed_blues_scale_source.mid

Midi Relaying file to set FTS up to retune it: Graham_Breed_blues_scale_source.rly

 This is another one in a 12 tone scale like the Andante in Quarter Comma meantone - but a bit more exotic in its tuning.

To retune, set the Scale to 133.0 182.4 386.3 449.3 498.0 653.2 680.4 835.6 884.4 947.3 1151.2 1200.0

I just thought this is a good point to mention the two ways of playing such a piece.

One way is to leave it at the standard setting of Play in Arpeggio with Play Arp From as WhiteKeys and set the Arpeggio to Diatonic . The black keys are then treated as accidentals of the arpeggio, and will play the in between notes. This is the standard setting for Midi relaying. It is somewhat more versatile when you want to change to another tuning with more than twelve notes, as the arpeggio will still play the white notes, even if the new tuning has too many accidentals for all the black keys - see Playing fine shades of accidentals from the music keyboard

Some prefer to set FTS to Play in scale, and play the scale from All keys.

Both approaches have the same effect for a twelve tone scale, so you can use either method with this one.

top , start of section

Non octave scale example - Jacky Ligon's golden meantone

You can use non octave scales with this scordatura-keyboard method too - there is no need for it to repeat at the octave. I chose one of Jacky Ligon's non octave scales for this example.

See my tune in Jacky Ligon's golden meantone non octave scale (or open in new window ),

Midi clip: Jacky_Ligon_golden_meantone.mid .

NWC score (for retuning): Jacky_Ligon_golden_meantone.nwc

Midi source (for retuning): Jacky_Ligon_golden_meantone_source.mid

 Midi Relaying file to set FTS up to retune it: Jacky_Ligon_golden_meantone_source.rly

Successive "white keys" of the score this time play an eight note mode of Jacky Ligon's non octave golden meantone scale (the cents values for the scale are given on the score and so are the scale degrees for the mode).

To retune this score, leave it as  Play in Arpeggio with Play Arp From as WhiteKeys . Then just enter the Scale and Arpeggio from the score in the main window, and relay in the normal way.

So set the Arpeggio to: 1 5 6 9 12 13 16

and the Scale to Jacky Ligon's Golden Mean non octave scale
75.120 121.546 196.666 318.212 393.332 439.758 514.878 636.424 711.544 757.971 833.090 954.637 1029.756 1076.183 1151.302 1272.849

This time the scale is non octave, and the mode repeats every 8 white keys. So c plays the 1/1, d' plays the first repeat of the scale, which is at 1272.849 cents, and so on.

So - a "very scordatura" score you might say.

top , start of section

Other examples

For more info about these pieces, and a fair number of other pieces composed in the same way composed with NWC and FTS, see my on-line page: Tunes . You will find some other techniques there - particularly- the use of an extra line in the score to change the root key of a piece - as explained in the section Tonic shifts and Tonic Drifts .

For mp3s of some of them: Robert Walker (

And that basically is it. Any questions, do please contact me!

top , start of section

Keyboard scordatura and other microtonal notation systems

Keyboard scordatura is of course mainly intended for keyboard players. Perhaps sometimes it might be possible for players of other instruments or singers to learn the system. By way of an example, if the score uses the white notes only, and is for a seven note or less octave repeating scale, then it mightn't be too hard to learn the pitches for each of the notes, even if they are far away from the major scale notes, as one has only seven notes to learn. See the hexany recorder trio for an example with only six notes to an octave, with one of the notes repeated..

Generally though, microtonal instrumentalists and singers who play pieces in the more exotic tunings tend to use scores with cents values written into them, or they use microtonal accidentals (fractional sharps or flats).

At this point, something of a FAQ is, is there any way to convert a scordatura score automatically into a score with microtonal accidentals, or indeed, to automatically convert scores between various systems such as cents, thirty one equal notation, seventy two equal notation, Indian sruti notations etc.. Unfortunately, I don't know of any way to do this. As things stand as of writing this (autumn 2006),  the only thing to do seems to be to enter the whole piece in both notation systems - and for the microtonal accidentals, you will have to find a score writer with microtonal symbols to do so.

Easy conversion of one type of microtonal score to another, e.g. cents and various systems of  notation for accidentals - and all of them to / from scordatura keyboad scores is one of the features in many microtonalists' wish list for a fully featured microtonal notation software :-). It is surely a must have feature for such a program when it is fully developed.

Meanwhile, for a keyboard player, scordatura scores are ideal. They may be better indeed than the ones with notated accidentals, as they can be sight read as is, with nothing new to learn.

I have plans to get started on a microtonal notation window for FTS in response to requests from FTS users to make the Tune / Notes in Play window editable. If I do it, it will be very basic - just dots for the notes, no such distinctions as half and quarter notes etc, but as it does to some extent already, it will let one show the notes  in different notation systems - by that I just mean - showing the notes as text on the score.

It would also let one show them as a normal score as it does now. Maybe also as a scordatura keyboard type score. In other words, not that different from what it is now visually - the main thing to do is to make it editable and scrollable - but that does involve a lot more work, unless I see some neat tweak to make it easier to do than it seems right now.

If I do it, you will be able to switch between the different types of score at a press of a button or selection from a drop list, much as one can in the current non editable Notes in Play window, but more flexible and easier to use than that. 

This will be an experiment really, and an opportunity to begin to explore some of the possibilities and ways in which such a program could be developed further. Something like a test bed for ideas rather than an attempt at a proper notation software.

I will be delighted if that much is achieved, and maybe useful for some composers writing short or not too complex pieces perhaps. It will also probably have support for complex polyrhythms (any number of beats to a bar, and any number of those simultaneously) built in from the start. 

Well I have a few ideas along those lines but don't know if I will really ever get them done, so much work is needed even to do that much (I know I can program it, and there is nothing major to prevent that - but it is still a matter of many months of work probably at least).

Thre are many other things that are easier to do, at least easier for me to do. It is a bit hard to think of something in this area small enough to be achievable in the short term, and yet useful enough to be worth doing. Depending on their background and experience, it is possible that other programmers may find making microtonal notation software rather easier to do than it is for me. Sometimes you find you have everything to hand for a task even though maybe you didn't plan it that way - but you just happen to be the right person in the right place at the right time for what was needed to achieve that particular thing.

I once considered writing a true microtonal notation program - it might indeed be possible given a good many more years of programming. But when I thought it through some more, there is so much that seems to be involved. It is a project that would stretch on and on for many years before one was satisfied with it - at least working as a programmer on my own. Perhaps it is the sort of large scale project that would be good for a group of people to do as a team effort.

So, I'm not so keen on that because of the truly huge amount of work that would be involved. It would be nice if the big players like Sibelius and Finale, or indeed, NWC :-) were to come up with one! There are promising signs here that some of the big programs are beginning to add support for microtonal accidentals at least. Maybe the next few years will see big changes in this - it seems to be an idea whose time has come :-). 

There is a lot one can do within a twelve tone notation software without need to make major changes in the architecture. That would be very useful to have.

Micrtonalists however are likely eventually to want something that goes beyond the twelve tone limitations.

E.g., something that seems minor perhaps to those not involved in programming themselves - to show a score with a different number of lines to the staff or a different way of arranging the lines - unless very lucky, the chances are that the program just wouldn't be coded in a way that makes that parameter easy to vary - at least it would be surprising if the programmers did code a program like that unless they had already anticipated the possibility of microtonal staff systems.

It can sometimes be hard to change the architecture of a mature program in such a fundamental way. If you build it in - the more parameters like that you have to vary,then the more complex the program gets - so the more important the architecture is. My Tune As score window is already very complex coding just as a display only window. When I think about trying to combine all that with an editable score, it is a bit mind boggling. Probably what it really needs is some new approach and start at a new architecture for it, rather than to try and tag on editability to a window that wasn't designed originally with that in mind. Twelve tone programmers must have a similar problem but the other way - to try and tag on such things as variations in the numbers of lines to the staff to an already existing editable standard staff program..

So a truly versatile microtonal notation software is likely perhaps to be a new program designed from scratch to be microtonal and very flexible in things such as number of notes to a staff and so on. It is also likely to involve more work - look at how much work they spend programming Noteworthy composer - look at the long lists of fixes and changes and new features.

A truly versatile microtonal notation software would want all those features - but also all the microtonal features as well - and doubling the number of features sometimes doesn't just double the work - depending on the architecture, may do so if the architecture is really excellent - otherwise - it can multiply the amount of work many times once you consider all the complex ways the various features can interact with each other, all of which have to work in a bug free fashion. So you may be talking about years and years of work for someone, or a team of people..

There is some work going on towards developing dedicated truly microtonal notation software - see Joe Monzo's Tonescape project, which is still in its early pre-release stages, but he hopes will eventually develop into a fully fledged microtonal musical notation software.

Anyway there is a lot of exploration of ideas going on - and a fair bit of programming too - yet in terms of actual results, as of writing, I am sure we are still in the very early stages. It will be interesting to find out what gets developed in this area in the next few decades!


MTS Tuning Programs

Intro , Quick Start , Options , Tuning table details , Tuning Program Numbers, Fractal Tune Ex.


If your synth or softsynth supports tuning tables, this is ideal for microtonal work. You can play up to 128 midi notes simultaneously, just as you can for twelve equal work but you can retune them as you like and so go beyond the limitation to 15 (16) simultaneous pitch bends..

Manuel Op de Coul's SCALA program has support for tuning tables for most makes of synth. See SCALA | Opts (the hammer icon) | Midi | Synthesizer tuning option (SEND) .

FTS only supports one type of tuning table - the Midi Tuning Standard - you'd expect that to be the one used most often, but in fact it is rarely used at all. It's supported by some synths in the Proteus family, and a few others (there's a list of supported synths in the Scala readme). However it is used nowadays in some Soft synths as well such as the FM7.

This standard has one feature which is of especial interest for the fractal tunes and midi relaying - an option to implement single note retuning

If this version of the standard is supported, you can retune a single note (or any number of notes) at any time by sending a small sysex of a few bytes. This is an effective way to go beyond the limitation on 128 notes on the midi note range, and the size of a tuning table.

This is of especial interest for the fractal tunes as these often go over the 128 notes limit for the maximum number of pitches if one uses a scale with many notes, multiple scales, fibonacci tonescapes, etc.

It is also of especial interest for some keyboard work. For instance, suppose you want to retune to a scale with 24 notes to an octave - I don't mean quarter notes, which are easy to do with pitch bends, but say Margo Schulter's sesquisexta and other tunings that require 24 pitch bends. You could spread the 256 notes you need over two keyboards, relay the two keyboards to FTS on separate channels so that FTS can distinguish them, and then play the notes in FTS using tuning tables.

Doing it this way by dynamically changing the tuning tables as you play, you get all the benefits of tuning tables with up to 128 note "pitch polyphony", but can also go over their limitation to 128 notes for the total midi note range just as one can do with the pitch bends method, so you get the best of both worlds :-)..

Other places where it is useful is for tonic shifts, scale morphing, subsets from CPS sets, the options to use a pedal or controller etc. to select accidentals, or any of the FTS options that require the tuning to change as you play.

The distinction is somewhat blurred if you use very fast midi relaying such as is possible with Midi Yoke as this will relay even a large sysex in approximately the same time as a short one, but either way it means you can get 128 note pitch polyphony, and because you can retune them while you are playing, you can work with scales with more than 128 notes in the Midi range.

You can read the MTS format here if interested: Midi tuning - Universal System Exclusive Messages

Until recently all this was entirely theoretical since single note retuning was even rarer than the midi tuning standard bank - (possibly non existent?). Good soft synths which support tuning tables of any type were also a rarity. Also until fairly recently the bulk tuning dump would be relayed too slowly for that method to be practical either.

However now, Hurray! the FM7 soft synth supports single note retuning, as well as the 128 note bulk tuning dumps.

The up coming Pro-53 will also support it, also by Native Instruments.

top , start of section

Quick Start

You will need to send the midi out of FTS through to the midi in of the FM7, as described earlier. E.g when using Midi Yoke, you'd select Out | Midi Yoke Junction 1 (say) as the midi out of FTS, and the same one as the Midi In for the FM7.

Then in FTS, select Out | Use MTS tuning programs . This sets everything up to use MTS tuning programs with the selected device. The other devices will continue to use pitch bends which means you can play the FM7 and your soundcard or synth simultaneously from FTS. To get an overview of which midi out devices you are using see Out | Set the parts to play for each device .

Now just use FTS in the same way that you always have done but it will now retune your notes using tuning tables instead of pitch bends.

You are now all ready to go!

Using FTS with the FM7

You can show the FM7 preset voices names in the Voices menu in FTS by selecting Out | Options | Customise voices menu names . You'll see the voices for the FM7, and the FM7 demo in the list.

When you use the FM7 with libraries of instruments from sysexes, then you may want to show the instrument names for those in the voices menu too. This can be done - see tip of the day 59

To forestall a couple of potential FAQs about using FTS with the FM7:

1. Why doesn't the retuning work with the demo? The FM7 demo doesn't receive sysexes - you can get an idea of its voices from the demo, but you need to buy it to use its MTS tuning capabilities.

2. How do I use it multitimbrally? The FM7 is monotimbral. If you want to have several FM7 voices in play at once, then start several instances of the FM7 and assign a channel for each from System | Midi Settings in the FM7 - then in FTS, assign those channels to the parts you want to play from Out | Options | Out Channs .

Actually, when you use MTS tuning programs, FTS will play each fractal tune part on the same numbered midi channel (if no extra pitch bends are needed), so if you just assign the channels to the FM7 copies in the same order that you have the parts in the Parts window for FTS, you may be able to skip the step to use Out | Options | Out Channs .

3. How do I use the FM7 with the pitch bends method? The FM7 uses only one pitch bend at a time - to use FTS with multiple pitch bends in the FM7, again start several instances, just as for 2. However you are probably better off using the MTS tuning programs method :-).

4. Notes don't seem to get retuned immediately, only the second time I play them, why is this? I'm not sure why this is but perhaps it is because the sysexes can get sent asynchronously - in other words they don't need to be synchronised with the note ons. Whether they are sent synchronously or asynchronously depends on the device driver which routes the sysexes and midi notes from FTS to your synth or soft synth.

A work around is to send the sysex to retune the entire midi note range whenever the scale or arpeggio changes - it is done that way anyway for the bulk tuning (all at once method) and you can enable this for the variable length sysexes too in the Tuning Sysex Options window. Then in case a note needs to be retuned at other times (e.g. because the scale has too many notes to fit in the midi note range or because you are using some of the advanced retuning options) you can also select the option to place a pause after sysexes in Out | Options | Midi Out / Save Timing . You will then get a bit of a delay when a note needs to be retuned at other times, but when it does sound it will be played tuned as desired. Experiment and make this delay as small as it can go for your setup.

To reset the tuning of the FM7 to equal temperament, use FM7 | Pitch | Equal tempered . It will also get reset to equal temperament when you close midi out in FTS.

The FM7 interface lets you specify tunings in 1 cent steps - good enough for much work but not fine enough for some microtonalist demands. Don't let that mislead you about its capabilities - when you retune it via MTS sysexes you get much better than that. I've measured it as accurate to at least within a hundredth of a cent or so and it is probably accurate to within the 0.0061 cents resolution of the Midi Tuning Standard spec, anyway certainly good enough to satisfy the requirements of even the most demanding just intonation enthusiasts :-).

You can also use FTS to make sysex files which you can use to retune the FM7 without the need to play them through FTS. Save the sysexes from the Tuning Sysex Options window in FTS. You can then load them in the FM7 using its import sysexes option.

top , start of section


Out | Tuning Progs Options.

Options intro , options .

Options intro

The main choice here is between the Bulk tuning dump , and the Single note retuning . Since the FM7 uses bank 0, and tuning program number 0, then the options that mention banks have the same effect as the ones that don't.

Also at present single note retuning in the FM7 is all non real time - if you retune a note that is already in play it has no immediate effect, but takes effect after you release the note and play it again. Michael Kurz tells me that the next update of the FM7 will support real time retuning - this will mean that for instance, you will be able to apply a tonic shift say, and retune a chord while it is still sounding.

Another important point to bear in mind: if you want to use your midi keyboard with the FM7 using the same keyboard layout that you use when relaying to it via FTS, the way to do it is to select Bulk tuning dump - and Do 128 note tuning for midi In note range .

That will ensure that the tuning table you send to your synth, will match up with the one you use when midi relaying through FTS. See Tuning Table details for the reasons.

Options - options.

Tune any number of notes ("single note retuning") - use this if you want to be able to change the tuning while you are playing.

128 note tuning as "Bulk tuning dump" - use this if you want to retune all the notes in one go when you open midi out, or whenever you change the scale or arpeggio, and don't need to change the tunings later.

If your synth supports the bulk dump but your midi relaying is fast enough to let one retune as one plays, then select Ok to use bulk tuning dumps to retune single notes as well.

Otherwise, if you choose this option and later try to play a note which isn't in the table - using accidentals, tonic shifts or whatever, then FTS won't try to send it, so it won't sound at all. When using the keyboard you will press the key and hear nothing at all. Fractal tunes will also have gaps if they need more than 128 notes.

The 128 here is a maximum number of notes to retune. Many choices for the arpeggio or Midi in keyboard layouts will require less than 128 notes within the midi note frequency range (with the midi keyboard layouts, often some of the midi in notes play duplicate pitches). If so, as many are retuned as are needed. The rest are left at whatever their current tuning might be on the synth and won't be used by FTS.

Ok to use bulk tuning dumps to retune single notes - The distinction between the two methods is somewhat blurred if you use the exceedingly fast Midi Yoke to relay between two programs on the same PC as both the bulk and single note retuning sysexes get relayed in about the same time as a note on / off pair - the size of the sysex seems to have little effect on the speed.

A bulk tuning dump can be used to retune a single note, or a few notes as you play if it can be sent quickly enough - one can leave all the other notes at the same pitches that they had before and just change the tunings of the notes you wish to change. So, if you come across a program that can handle the bulk dumps and not the single note retuning you may wish to select this option.

Save fractal tunes in all six formats - When you use File | Save As | Files of type | Midi (*.mid) this saves the midi clip with pitch bends using just the fractal tune file name, and then also saves it in all six possible MTS formats by adding various suffixes to the file name. The suffixes are: _S.mid = Single note retuning, _SB.mid = single note with bank, _SBNR.mid = single note non real time, _B.mid = bulk tuning dump, and _BB.mid = bulk tuning dump with bank.

Send 127 note tuning whenever the scale or arpeggio changes and on open Midi Out - Shows up when you have single note retuning selected,. The idea is to retune notes in advance to minimise the number of sysexes to send while actually playing. The single note retuning spec allows one to tune a maximum of 127 notes rather than the 128 notes of the bulk dump. As before, in actual practice your arpeggio may need less than 127 notes, so as many as needed will get retuned.

Note - if you have Send 127 note tuning selected then the numbers in the next section get changed from 128 to 127.

Options for the 128 note tuning

Do 128 note tuning for arpeggio - this is most useful when making fractal tunes. It does a tuning dump for the main window arpeggio. The dump works by going up and down the arpeggio from the 1/1 as far as one can go, retuning all the notes.

For midi In note range - FTS will go through the entire midi in note range from note 0 to 127, and tune all the notes accordingly. Even with the bulk tuning dump you will be able to play all the notes from midi in (unless you use pedal / controller to change the shades of accidentals used or the like)..

Do Custom Voice partials for bulk dump - if you have selected a Custom voice into a part, and the voice has several partials, use this to add all the partials to the tuning dump so that you can hear them. Best used with a sparse scale with few notes - e.g if your custom voice has two partials, try using a five or six note scale and do the dump for the arpeggio in order to have enough notes in the bank for all the partials.

top , start of section

Tuning table details

Show current or most recent tuning table... This shows the tuning table as sent to the synth / softsynth.

The table shows intervals just as they are shown in the main window scale, so to confgure this use File | scale notation . For the note names format - such as C4, C', etc, show the. Pitch window, then select from the drop list of ways of showing the note name.

If you retune to the arpeggio instead of the midi in note range, then some of the notes may well not be retuned, if less than 128 notes are needed. Even if you have selected Do 128 note tuning for midi In note range , then some of the midi in notes may get mapped to the same midi out note, and so not need to be retuned. The upshot is that the table you see here may well have gaps in it. This is true for all the tuning methods - the MTS midi spec for bulk dumps has an option to leave any of the notes at whatever tuning they already have and not retune them anew.

If you are midi relaying through FTS, then FTS uses this table in an indirect fashion. When you play a note, FTS first works out the pitch you want to hear, and then it searches through (its own copy of) the tuning table to see if it is there. If it is, FTS will send the requisite note number to the synth.

An example may help. Perhaps you are playing a fractal tune that uses the harmonic series, and it needs to play a 3/2 above middle c. FTS will retune midi key 67 to this pitch if it is available - it retunes the nearest 12-et note if possible. However, maybe 67 has already been retuned to some other pitch, 17/1 say. If so FTS will look for some other note that is free for retuning. By way of example, perhaps many of the notes are retuned already and the nearest available free note is note 50 - then it will retune that to the 3/2, which means it can send on note 50 whenever a 3/2 is needed, and leave note 67 retuned to the 17/1.

Then after that, if you want to play a 3/2, FTS will look it up in its copy of the tuning table in use, find out that note 50 has been retuned to your desired pitch, and so send it on as note 50.

So, the actual note numbers sent will depend on the history of pitches you played earlier - the tuning tables can get quite complex and disordered in appearance this way. This may seem complex, and it would indeed be for a human player but it isn't really for a program (just an extra few lines of code).

This gives far more flexibility as you can always guarantee to find a free note to use to play a new pitch unless you have all 128 notes sounding at once.

Forget previous note tunings in order to make a nicely ordered tuning table . This takes effect when you change the main window scale or arpeggio. Standard setting is selected. When unselected, FTS will try to keep the old entries as far as possible and only retune as many notes as are needed for the new tuning. When selected, FTS will start with a clean slate each time and construct a new tuning table. When selected, the tuning tables are much easier to read - however when unselected you may reduce the size of the single note retuning sysexes on occasion, and even remove the need for some altogether (e.g. if you change the arpeggio to a subset of the previous one). Only worth unselecting probably if you have particularly slow relaying.

top , start of section

Tuning program numbers

Out | Tuning Progs Options | Tuning program numbers

This is for various other things in the midi tuning standard. For the FM7, leave them all at their standard settings.

I coded them following the tuning spec, but haven't actually tested them in use. They are straightforward looking - each one just changes a single number in the sysexes - so if you need them they may just work fine first time - but be sure to let me know of any bugs or suggestions!

Synth Id - your synth may require you to enter an id here to use the tuning programs. The standard setting is 0.

Tuning program number for part - if your synth supports multiple tuning numbers, you can uses this, and set a tuning program for each part. In principle this could let you have e.g. part 1 tuned in one way, and part 2 tuned in another way, etc. Standard setting is 0 for all the parts.

Tuning bank number for part - use this if your synth supports multiple tuning banks.

Sync tuning bank with bank for part - when selected, this synchronises the tuning bank number with the bank number for the part which you can set in the Parts window. If your synth supports tuning banks, you can use this to associate a tuning bank with a part, and then when you change the bank for the voice, the tuning bank number will change in synchrony.

top , start of section

Fractal Tune ex.

Here is an example fractal tune: science_friction.ts

I made it for the science friction voice of the FM7, though of course you can try any of them. I haven't included it in the main lists of example tunes because with the sustains, and the amount of pitch polyphony needed for them, it can only really be played as intended with tuning table support.

You can hear the mp3 at

top , start of section


Scales to Morph to

In | Options | Scales to Morph to

This lets you morph from one scale to

another using the modulation wheel or any other controller / pedal.

Morph scales - First select this.

Now choose the scales and arpeggios you want to morph between. To do this select a scale and arpeggio in the main window, highlight the row you want to copy it into, then click Select scale and arpeggio from main window .

Repeat for all the scales you want to morph between - if you want to morph more than two, increase the Number of scales to morph .

Refer to this window to see what scales you are morphing between.

Current morph position . Shows how far you have morphed to. So for example, if this shows 2.3, then it means you are three fifths of the way between the second and thirds scales / arpeggios in the list.

You can also edit this field directly, to morph to some particular desired point between the scales.

You can also show a Bs | Seed... window and watch to see where the notes are playing on the keyboard.

One can morph between scales / arpeggios with different numbers of notes, or between an octave and a non octave scale, etc etc..

The way it works that if you play, say, the tenth degree of an arpeggio (i.e. tenth note up, counting from the first note as 0), and then morph to another arpeggio with another number of notes to the octave, then it goes to the tenth degree of that one, wherever it is.

E.g. if morphing between the just intonation pentatonic and diatonic scales, you morph between 4/1 as the tenth degree of the pentatonic scale, and 8/3 as the tenth degree in the diatonic scale.

So, though both of these are octave scales, in between, clearly, you will play in some non octave scale or other. This can work because they have differing numbers of notes.

Another useful application would be to morph between an octave scale and one with stretched octaves, so you can vary the amount of the stretch.

At present the scales to morph to are ignored by the fractal tune. Main window shows the scale played by the fractal tune.

The morphed scale itself isn't shown anywhere. Note that the morphed scale will often consist of a larger number of notes than either of the ones it is morphed between. E.g. if it is part way between a five and a seven note scale, it might well need to be shown as a scale repeating every 35 notes, and with a large non octave interval of equivalence. E.g. with the diatonic and pentatonic scales, one would need an interval of equivalence varying between five and seven octaves, depending on the morph position. With such a large interval of equivalence, it really hardly counts as a repeating scale at all :-).



Scales for Parts

In | Options | Scales for Parts

The idea here is that we can select a scale + arpeggio into a part. So this is like using separate tuning tables for each of the parts.

See Parts .

To use this option, select Scale and Arp. depends on part .

Now to set a scale and arpeggio for one of the parts, highlight it, then select or edit the scale and arpeggio in the main window until you have it as you like it. It gets transferred automatically into the highlighted this window whenever the main window scale or arpeggio is changed.

Get main window scale / arp . can be used to select it into a part if it is already as you want it in the main window and you don't need to change anything.

Remember that when you want to go back to normal Midi retuning with all the parts relayed using the main window scale, you need to unselect Scale / Arp. depends on part . As one would expect,, View | Midi Keyboard | Standard Settings is and View | Midi Relaying | Standard Settings reset this to unselected.

So, how does one use this option?

First, you can set up your keyboard so that e.g. the left half plays one scale and the right half plays another.

To do this you would just select the desired scale and arpeggio into the two parts from the Scales for Parts window, then you would select Presets | Select part by keyboard region . and then Midi Keyboard Options | Presets | Two parts - left and right. You would use this with the Midi keyboard retuning tasks - or select Presets | Select part by keyboard region

You can also use this option to retune midi clip, or the midi output from a notation program, so that it uses one scale for one midi in channel, and another scale for another one. To use it that way you select Presets | Select part by input chann .

For other options in that drop list see Select part by .

There are many other ways of using the Scales for Parts window, and the best way to get started with these is probably to try out the presets - see next section.



Scales for Parts presets

These let you play scales with shifting or drifting tonics, tonality diamonds, Wilson CPS sets and various other presets.

Any scale and arpeggio can be made into one with tonic shifts or drifts, or into a tonality diamond. The Wilson CPS sets are geometrical scales with many pure harmonies (see see Exploring chords in the Wilson CPS sets ).

As a quick way to get started, go on to

Parts | Scales for parts | Presets (Ctrl + )

Many of these presets involve tonic shifts in one way or another.

If you are using FTS to retune your Music keyboard, you may be most interested in changing the tonic using a region of the keyboard - or by using a controller. For the music keyboard options, then you need to tell FTS what size your keyboard is, so it knows where to place the tonic shifting regions. Select part by keyboard region from the drop list. Set the Left-most note of the keyboard to use for tonic shifts to the left most note of your keyboard.

You need to make the choice of Select part by from the drop list first before you clicking the preset button of your choice. You need to remake the preset if you want to change the method here - but if you have Auto re-make preset after changes selected, this is done for you automatically.

If you want to retune a midi file or the output from a sequencer with a separate tonic shifting channel in it, then you will want to use Select part by input chann. The other options in this drop list can be useful too in various situations.

If you want to use a controller to change the part to / from the tonic shifting part while you play, then select Change tonic using controller

As a first example, let's choose.

Retune MW scale with Tonic shifts... . The idea here is to be able to change the tonic for your scale by setting aside one octave of the keyboard as a tonic changing register.

So what this option does is to select your current main window scale into part 1 as the " Tonic Shift " and again into all the rest of the parts as Play / Source . When used with the Select part by keyboard region option, it will also set your keyboard regions up so that the leftmost octave of your keyboard plays part 1 and the rest of the keyboard plays part 2.

Let's suppose you have a just intonation twelve tone scale with a pure major chord rooted on the 1/1 in C major. Suppose you want to play in a justly tuned A major scale - either for a change of tonic or to tune e.g. an A major chord nicely or some other chord that is tuned better on A as a root.

To do that - just press an A in the tonic shifting region of the keyboard - and from then on, the scale will be a justly tuned twelve tone starting with A as the 1/1. The A here will be at 5/3 above the pitch you chose for the 1/1 so the pitches you hear will be much the same as before - except for small 81/80 type comma shifts which are needed to keep the notes justly tuned for your new tonic.

To change to another tonic at any time, just hit the appropriate tonic key again.

For a few more details ,and an explanation of why one would want to change the tonic as one plays, see Tonic shifts and Tonic Drifts

The left-most octave of the keyboard is for tonic shifts - or as much of the keyboard as is needed for the scale. The rest is available for playing. The 1/1 of the scale is played from the middle c key of your keyboard, configured from the Scales for parts | Presets | Midi keyboard regions window . The actual pitch for the 1/1 is set from the Pitch... window.

Tonic drift is same as Tonic shift , in some respects. However, this time whenever you change the tonic, the tonic itself stays at the same pitch as it had before the change - this ensure that the two tunings dovetail together smoothly at the new tonic. If you dovetail them together at the tonic like this, the melodies are continuous with no tonic shifts - no comma shifts of the tonic, but you get a gradual comma drift.

To explain this, let's take an example. In just intonation twelve tone, if you move immediately to note A as the new tonic, then it will be at 5/3 above the 1/1, but if you move, say, to D first as an intermediate tonic, and then to A, the A will be the 3/2 above the 9/8, i.e. 27/16.

The tonic shift area of your keyboard has an extra note, the 2/1, which can be used to reset everything to its original pitch before all the comma drifts. Also if you press any tonic choice key twice in succession, then it resets it to its original pitch - so in this case if you press the A twice then it will reset to 5/3 whatever position it may have reached as a result of cummulative comma drift in the meanwhile.

This preset gets made with Which keys to use to play the notes set to Use original key for tonic . This means that e.g. the A key will always play the A in the current scale even if as a result of tonic drift it may have drifted so far that it is now really Ab say or A#.

This seems the most intuitive approach as otherwise it would suddenly have to jump by a semitone at some point, so that the A which was playing a very sharp A jumps to a very flat A (the A# then taking over the task of playing the very sharp A). However - if you want it to play the nearest pitch available in the drifting scale to the original A, then just change this to the option to minimize 1/1 drift.

The harmonic series tonality diamond is the result of multiplying together two harmonic series note by note like this:

1  2  3  4  5  6  7
2 4 6 8 10 12 14
3 6 9 12 15 18 21

. Now, normally this should be product of a harmonic series 1 2 3 4 ... with its inverse 1/1 1/2 1/3 1/4 .... However, the harmonic series is made in FTS using a symmetrical scale that starts from the 1/1 and moves up to the right as the harmonic series, and down to the left as the sub-harmonic series like this:

...1/6 1/5 1/4 1/3 1/2 1/1 2/1 3/1 4/1 5/1 6/1...

So if you take the product (cross set) of two of these symmetrical scales, you get the harmonic series tonality diamond in the regions where one of them plays the sub-harmonic series, and the other plays harmonic series.

1/3 1/2 1/1 2/1 3/1 4/1 5/1 6/1 7/1 1/2 1/1 3/2 2/1 5/2 3/1 7/2...
1/3 2/3 1/1 4/3 5/3 2/1 7/3...

It is set up so the left half of the keyboard plays one series, and the right half plays the other one.

If one made a product of the harmonic series with the sub-harmonic series, with nothing below the 1/1 in either case, and if one also minimized the amount of the 1/1 drift, one would have regions of the keyboard where no notes sounded, which is the reason for doing it this way.

With the harmonic series tonality diamond, one wants to keep the 1/1 as the same key of the keyboard through all the changes of tonic (root). So Which keys to use to play the notes changes to Minimise 1/1 drift .

The Tonality diamond , and Drifting tonality diamond (in the More version of the window) is the result of multiplying the main window scale with its inverse. Again, since the interval that one is transposing for in the tonic shift region of the keyboard is the inverse of an interval in the playing scale, it needn't necessarily correspond to any of the actual playing intervals. So again, the Which keys to use to play the notes resets to Minimise 1/1 drift .


Much of this section is an implementation of some of the features in Carl Lumma's specification for Xenharmonic Moving Windows - and I'm very grateful to him for his programming suggestions.

Make Wilson CPS :

A CPS is a scale particularly rich in perfect just intonation chords. At this point one may want to look at Exploring chords in the Wilson CPS sets (on line only).

The way it works is that the leftmost 1, 2 or 3 octaves of your keyboard will become factor control octaves. Play a note in any of these octaves, or all of them, to select / unselect notes from the CPS.

The rest of the keyboard then plays the chord you have selected from the CPS..

You can choose which CPS to explore using the Combination Product Sets Layout button. If you want to go ahead and explore the CPS sets at this point, go on to Combination Product Sets Layout .

Make diesis shifted scales from M.W. Scale - can be used to make the main window scale shifted by multiples of a diesis to all the parts. Standard setting is for a diesis of 81/80. You can enter any value you choose, and it can be in cents, ratios, or any formula recognised by FTS - see File | scale notation | Ratios | Calculator for quick summary of the symbols you can use in formulae.

The drop list will show a list of dieses made from the current arpeggio of the current scale. Click the Calc. button to remake this list. The way it is calculated is to first find all the interval sizes for each interval class - e.g. all the one step intervals, all the two step intervals and so on (an interval class is the class of all intervals that you can make using a particular number of scale steps). Then the dieses will just be the possible ratios between intervals in the same interval class. It lists all of the dieses for all the interval classes. E.g. in just intonation 12 tone scale, the major third can be a 5/4 or a 32/25 (i.e. up by 5/4 from the 1/1 or down by two 5/4s from the 2/1), and the ratios of these two gives the diesis of 128/125 . The second can be a 9/8 or a 10/9, and the ratio of these two gives the syntonic comma of 81/80 . To explain this more fully: C G D as 3/2s gives C - D as a 9/8 and C E A D gives it as a 5/4 followed by a couple of 4/3s which after octave reduction gets you to 10/9. This gives us the large and small just intonation whole tones and the ratio between the two is the syntonic comma of 81/80.

The calculation is done for the Arpeggio rather than the Scale , so changing the Arpeggio in the main window and re-doing the calc. may change the drop list of dieses.

If the diesis you want isn't in the drop list, just type it into the box. The diesis scales are pretty straightforward, so no need to explain them further - except to say that as well as playing them from the music keyboard, you can also play them from the diamond keyboard layout (which you can play using the PC keyboard, mouse, or Barbara Hero's Lambdoma keyboard if you have one of those). To show that just click the icon for the rectangular scale.

You can also make the product of two scales from In | Options | Scales for parts | Presets | Product of two scales . Again this is very straightforward - just has one scale running horizontally, and one vertically and in between you have the product of the intervals in the two scales - obtained by multiplying the ratios, or by adding the cents values (since addition of cents corresponds to multiplication of ratios). Each row is a transposition of one of the scales, and then each column is a transposition of the other one.

Now let's go back to the Scales for parts window for more details about how it works - this will make it possible to design your own custom setups for more elaborate situations.

Each row shows the scale and arpeggio selected into that part. To change a selection, highlight the row, then change the scale or arpeggio in the main window.

You can also specify what the part does using the drop list at the bottom of the list.


Play / Source - used for playing notes, or as source for factor selection. It plays whatever scale you have selected into it. This part is affected by tonic shifts

Octave reduced - result from factor selection, octave reduced

8ve redu. Omit 1/1 - result from factor selection, octave reduced, and the 1/1 of the original scale and all octaves of it get left out (as one wishes to happen for CPS sets).

Tonic shift (diamond) - changes the tonic for all the playing parts.

Transposing Tonic - changes the tonic, and also transposes to the new tonic. E.g. if you select 5/4 as the root, all the notes are transposed up by 5/4 from the original pitch.

Tonic Drift - changes tonic cummulatively - each time you select a note, it multiplies the tonic shift for the part by the ratio between the new tonic and the old one.

Factor , Any same factor and Number of factors

Selects from the Play / Source part, also changes the mode for the Play / Source part to show the selected notes. Also places the notes, octave reduced, into any Octave reduced, or 8ve redu. Omit 1/1 parts.

For Factor and Any same factor if the "scale" value in the factor selection scale is positive, playing that note selects all ratios in all the playing parts that include that factor. If its negative (of course no longer a possible scale value, but has a meaning in this special context) it selects all ratios that omit the factor.

Factor : note that the factor here is allowed to be composite - it doesn't have to be prime (we aren't talking about a prime factorisation necessarily here). The factor 9 is often used in CPS sets. If the "scale" value is 9, it will select only ratios that have at least two 3s in the prime factorisation. If 6, only ratios with at least one 3 and one 2 in the prime factorisation. I.e. you have to have the complete number, including any repeating prime factors of it.

Factor to same power : if the "scale" value is, say, 9, it will select only ratios that have exactly two 3s in the factorisation (and any number of other factors). If 6, only ratios with exactly one 3 and one 2 in the factorisation. So for example, 3 will skip 9, and 9/8, 9/5, 45/32,... and select 3, 3/2, 6/5,... while 9 will select the 9/8, 9/5, 45/32,...

Any same factor : if the "scale" value is, say, 9, will select any ratios with a 3 in the factorisation. If 6, any ratios with either a 3 or a 2. I.e. you can have any of the factors that occur in the number.

Number of factors : Selects any ratio with the same number of prime factors. E.g. 2 3 selects any ratio with exactly 3 prime factors of any type.

Divisor : Value needs to be a whole number. Selects whole numbers divisible by it . So in harmonic series, 3 selects 3, 6, 9, 12, ... and 9 selects 9, 18, 27,...

Divisor to odd power : Value needs to be a whole number, and selects whole numbers. Only counts as divisor if it divides it to an odd power. So e.g. 3 is an odd power divisor of 3 and 27, but not of 9, while 9 is an odd power divisor of 9 and 27 (but not of 81). This is particularly useful for some CPS sets such as the 2 3 5 7 9 11 Eikosany.

For all these options, 1 selects all ratios whatever their factors, so it. acts as a select all key.

The standard setting is to search both the denominator and denumerator for the desired factors. E.g. 3/2 has same effect as 6, and will select any ratio with both a 3 and a 2 in its factorisation, or any ratio with either, depending on what method you are using. By way of example, suppose the Play / Source scale is j.i. 12 tone, the factor selection part is set to Any same factor and you play a 3/2 in this part. This will select all the notes in the scale except 1/1, because they all have either 2 or 3 as factors, Suppose you set it nstead to Factor and play 3/2. This time it will select 16/15 9/8 6/5 4/3 45/32 3/2 15/8 because all those notes have both 2 and 3 in the factorisation.

If you select Select by factors separately in denom and denum , then the denominator and denumerator are searched separately. E.g. 3/2 will select any ratio with both a 3 in the denumerator and a 2 in the denominator, or any ratio with either 3 in denum or a 2 in denom, respectively. E.g. if playing scale is j.i. 12 tone, this time, Any same factor with 3/2 will select 9/8 6/5 5/4 45/32 3/2 9/5 15/8 , and Factor with 3/2 will select 9/8 45/32 3/2 15/8 respectively.

The factor selections can be combined - each Factor part selects from the notes remaining after the selections from all the previous factor parts have been applied.

They can be used with any number of scales - the Factor searches search each Play / Source scale in turn. All the Factor searches are applied to all the Play / Source scales. Any Octave reduced parts are made by applying octave reduction to the last Play / Source scale which occurs in the list before them.

Can also be combined with tonic shifts as well - tonic shifts are applied at the end, after all the factor selections and construction of octave reduced factor selections have been done.

To save the list of scales in the Scales for parts window, click the yellow O organise icon in top right, then use Save As .  You can do the same for any window. You can save the keyboard regions in another file, from the keyboard regions window.

When using this option one may well want to swap between various set ups, e.g. for playing from midi keyboard, or via sequencer

To save all the Midi relaying settings in the program, use File | Save as | Files of type | Midi Relay files (*.RLY) . To quickly swap between them, show the Organise Windows window again, and choose All from the drop list, and you will be able to select the files you have just saved from the drop list for Midi I/O settings.



Tonic shifts and Tonic Drifts

View | Midi Keyboard retuning Advanced | Presets for scales for Parts | Tonic Shift or Tonic Drift .

First select a suitable scale in the main window, for instance, Just temperament twelve tone .

Then choose which octave of your midi keyboard you would like to use for the tonic control octave - by setting the appropriate key to play in the Left-most note of keyboard to use for tonic shifts .

Now click either Tonic Shift or Tonic Drift . in the Presets for scales for Parts window.

Then as you play, whenever you want to change the tonic, hit the appropriate key in the tonic control octave. This needn't just be for changes of key - you can change the "tonic" for instance to the root of a chord, e.g. if you want to play a D major chord and that chord isn't in tune in the tuning on the 1/1 (as it isn't in some pure ratio just intonation tunings). then changing to D as the tonic will make it in tune.

You can use the same idea with any scale you like. Every time, first you need to set up the scale in the main window, and the arpeggio you want to use with it, and then click the Tonic Shift or Tonic Drift button again. However, you can also use the option Auto re-make preset after changes - in which case whenever you change the main window scale, then the tonic shifts preset will get remade accordingly.

The motivation here is to be able to play just intonation chords. It's not possible to make any fixed pitch twelve tone system that will let you play all of its triads in pure just intonation - any such has at least one major third in three sharp. Indeed you can't even make a major scale justly tuned in this fashion as some of its triads will always be impure too. So, there are two choices if you want pure triads. You can keep the overall pitch of the melody steady, but make small pitch shifts from time to time. Alternatively, you can eliminate all the small local pitch shifts - but then you find that the melody as a whole may slowly drift up or down in pitch.

You need to choose which method you want to use before you click on the button

For an example to illustrate comma drift, using the first three bars of "God save the King" see RENAISSANCE "JUST INTONATION" - scroll down to The myth of drifting pitch . He does it a second time with comma shifts, so one can compare the two methods.

With Tonic Shifts , you always use the same pitch for each of the tonics. For instance, maybe you have the C at 1/1, and then when you shift to E major, you use the E that is 5/4 above the original C as the tonic for your E-major scale.

For definiteness, lets' suppose you are in this just intonation. scale

1/1 16/15 9/8 6/5 5/4 4/3 45/32 3/2 8/5 5/3 9/5 15/8 2/1

When you shift the tonic to E at 5/4, you will get

5/4 4/3 45/32 3/2 25/16 5/3 225/128 15/8 2/1 25/12 9/4 75/32

as your E major scale, with the E of the keyboard playing the 5/4.

So far so good, and starting from C the scale now is:

1/1 25/24 9/8 75/64 5/4 4/3 45/32 3/2 25/16 5/3 225/128 15/8 2/1

This gives you a pure E major chord as 5/4 25/16 15/8 with pure 5/4 instead of the 5/4 8/5 15/8 of the j.i. scale.

The C hasn't changed so you can go back and forth from C to E and back again no problem.

Now however, try, say, D minor. In the original scale, the D minor chord is 9/8 4/3 5/3 , which uses the intervals 32/27 for the major third and 40/27 for the fifth.

Touch the D tonic key and the tuning will change to:

81/80 135/132 9/8 6/5 81/64 27/20 45/32 3/2 405/256 27/16 9/5 15/8 81/40
This makes the D minor chord 9/8 27/20 27/16 - relative to the 9/8 it's 1/1 6/5 3/2 . which is a pure minor triad. However, notice that the C has been shifted up in pitch up to 81/80.

If one now played a C in this new tuning with D as the tonic, and then one shifted the tonic immediately to C, and played another C immediately after the first one, one would hear the note shift in pitch by 80/81 - a very noticeable shift in pitch.

So whenever you change from C to D and back again using fixed pitch tonic shifts, you get this shift of pitch of C. Similar shifts of pitch will happen in other settings too - for instance the C to E shift didn't change the pitch of the C but it did change the pitch of many of the other notes which will be noticeable in other context.

No matter what the original tuning you choose, you can always write music which will lead to tonic shifts in this way, and indeed, most music which wanders around in tonality at all will lead to tonic shifts from time to time whatever your choice of tuning for it.

Tonic Drift lets you dovetail melodies together by choosing the pitch of the new tonic to coincide with the pitch it had immediately before the tonic shift. This means that when you touch the D tonic key, sometimes it will be tuned as a 9/8, sometimes as a 10/9, and sometimes as some other interval, depending on what sequence of tonics you went through to reach it. So, if you keep to a single melody line and dovetail the phrases together at the tonics, or do the same with a sufficiently sparse accompaniment, the various pitch shifts aren't noticeable - but the 1/1 may very well drift as time goes on and this may become noticeable..

However, one can also have the best of both worlds in FTS - to some extent. The idea is that when using Tonic Drift , one may well want to get back to the original home pitches of all the tonics, e.g. to get a tonic D back at 9/8 in that j.i. scale, or get the C back to the original 1/1.

There's a way built in to let you do this - hit the same key twice.

So if you choose Tonic Drift and play each tonic shift key twice every time, Tonic Drift has the same effect as Tonic Shift . This means you can let the tonic drift a little, and then when you need to, you can bring it back to its original pitch to make sure it doesn't drift too far - and choose some moment in your playing where the tonic shift sounds acceptable.

To watch the tonic changes as they happen, show the In | Options | Scales for parts and choose Show tonics from the drop list.



Combination Product Sets Layout

View | Midi Keyboard retuning Advanced | Presets for scales for Parts | Wilson CPS Options

See my on-line page Exploring chords in the Wilson CPS sets to find out about CPS sets and how they relate to geometrical models. You'll find a java applet model of the hexany on this site amongst other things - the hexany is one of the smaller of CPS sets and so that gives you an introductory idea of what it is all about. You'll discover that it is a geometrical shape made from triangles (an octahedron in fact) and that when you click on any vertex, edge or face you hear a note, diad or triad, with the notes corresponding to he vertices so that all the chords join together in this geometric fashion too - if a face in the model shares an edge with a neighbour, then its triad shares two of its notes with its neighbour..

Later in this section: Hexanies , Dekanies , Eikosanies , Other options , Euler / Fokker Genus , Keyboard mappings used for the factor selection , why 2 is used instead of 1 for the factor selection .

Here, the idea is to be able to explore these various CPS sets from your midi keyboard.

To set it up ready to play, first list the factors you want to use, and the number of factors - preset to 2 3 5 7 11 as the factors, and 2 as the number to select, which makes the 2)5 dekany 2 3 5 7 11 . Here 2)5 is a shorthand for 2 out of 5 . Then click the Make Wilson CPS button. This sets FTS up accordingly so that you can play in the CPS from your midi keyboard - changes the main window scale and various other settings.

You are now all set up to play it from your midi keyboard.

If you have Select Parts by keyboard regions , selected (standard setting for the midi keyboard tasks), you now select chords by playing keys in factor selection octaves, which are the left most few octaves of the keyboard. Then you play the the resulting chord in the rest of the keyboard.

So, the idea is to just play notes in the left-most (silent) octave, then play / improvise in the resulting chord or scale which you will find in the rest of the keyboard.

For Select part by input chan. (standard setting for midi relaying view), you select chords from the model by playing notes in the first few midi in channels. Then you play the resulting chord in any of the remaining midi channels. This is more useful probably if you are composing rather than improvising.

To change the method - select one of those options and make it again.

You can see what is going as you play from the Scales for parts window. The complete Wilson CPS scale is shown in part 1. Parts 2, possibly 3, possibly 4 (depending on the CPS), become the parts you use for selecting factors, or choosing factors to skip. Each of these parts gets mapped to one of the silent octaves of your keyboard, so that it can be used for factor selection - as you'll see from the Midi keyboard regions window (or with the alternative method, it gets mapped to one of the midi in channels).

If you really get into CPS sets, you may also want to see the factorisations of the numbers as you play as this gives an idea of the position of the note in the CPS set, and it will also show how the factor selection is working. To do this, select File | Scale notation | Factorise ratios . One will probably also want to change the selection Whole number ratios as 1/1, 2/1... to as 1 2 ... .

For more information, highlight one of the octave reduced parts in the Scales for part window, and as you play, look at the scale description in the main window. This will show which factors have been used to select the notes, or to skip notes. Then look at the scale itself to see which of the triads, hexanies or whatever you are playing and what the factorisation is for them all.

For example, if you skip 2 and select with 3 and 5, you will end up with the chord consisting of all the notes of the complete CPS that have 3 and 5 in their factorisation, and no 2s, as you will see if you look at the scale that gets made in this fashion..

Depending on which factors you select, which you skip, and the original CPS, you may end up with a triad, tetrad, hexany, or (in case of eikosany), a dekany, or the complete CPS (if all the factors used to select notes are set to 1). Whatever you get will be repeated at octaves over the entire remainder of the keyboard.

Now to introduce a few of the models to get you started on your explorations of them.


This is explained in the on-line page with a 3D model. To summarise, the basic idea of a 2)4 hexany with factors 2 3 5 7 is that you take all pairs of numbers from 2 3 5 7 and multiply them together:

2*3 2*5 2*7 3*5 3*7 5*7

To make this into a conventional scale, note that we don't yet have a 1/1.  So choose one of these notes as the 1/1, say, 5*7. Divide all the notes by 5*7 and you get:

1/1 8/7 6/5 48/35 8/5 12/7 2/1 (up to octave reduction).

In Erv Wilson's explanation he uses 1 3 5 7, but 2 3 5 7 is easier to program for as it is easier to test for 2 as a factor, so with FTS you have to use that instead - of course 2 and 1 are the same up to octave equivalence.

It can be quite hard to find the triads in the hexany when presented as a linear scale like that, and progressively even more tricky for the larger CPS sets. Of course it will help if one has an instrument with the notes set out in a suitable geometric arrangement. In the on-line web site I mention the technique of finding the geodesic squares of the hexany to help locate the triads, in the notes to my improvisation in the 1 3 5 7 Hexany .

Using the factor selections in FTS is a great way to find them when playing the scales from a music keyboard. You can also use the same technique to select hexanies from the larger CPS sets, which we'll come to in a moment.

With the hexany, you'll find that you have a single factor selection octave - the left-most octave of the keyboard (or the first midi in channel if you use the midi relaying method).

White keys select factors, and black keys skip them. If you select one of the factors, you'll get an otonal triad - a major type chord. If you skip one of them, you get a utonal triad - minor type chord. Again, the web page explains more about this. So in short, if you press a white key in the factor selection octave you find the rest of the keyboard plays one of the major type triads - though possibly an exotic one using intervals like 7/4. When you press a black key, it will play a minor type triad.

Try making hexanies with other combinations of four factors, such as 2 3 5 11, 2 3 7 13, .... Another hexany to explore is 2 3 5 9 - it's okay for factors for CPS sets to be compound numbers.


Dekany: for the factors use for example 2 3 5 7 11 . Alternatively, 2 3 5 7 9 . Ether 2 or 3 at a time. You'll have two factor octaves (or midi in channels) to try. Again white keys select factors and black keys skip them - all of them work the same way like this.

The dekany with two factors at a time is known as the 2)5 dekany, and the other one is known as the 3)5 dekany.

For the 2)5 dekany, skipping one factor gives a hexany. Skipping two of them gives a utonal (minor type) triad. Selecting one and skipping another gives an otonal (major type) triad. Selecting two factors gives you a single note (unless of course both are the same). Selecting one factor only gives a utonal tetrad (set the other factor to 1).

For 3)5 dekany, skipping one factor gives a hexany again. Selecting one factor gives an otonal tetrad. Let's leave the rest for further explorations.


Eikosany: three out of 2 3 5 7 11 13 (alternatively 2 3 5 7 9 11 ), three factor octaves (/ midi in channels), skipping one factor gives a 2)5 dekany. Selecting one factor gives a 3)5 dekany. Selecting two factors (leaving last one still at 1) gives an otonal tetrad. Skipping three factors gives a utonal tetrad.

Then once one has a dekany, use the factor selection / skip methods for those. E.g. skipping one factor from the Eikosany gives a 2)5 dekany, so skipping another factor gives a hexany, and skipping three gives a utonal triad. Similarly, skipping two and selecting one gives an otonal triad.

Another one to try is the 2 3 5 7 9 11 Eikosany. Skipping or selecting one factor will get you a dekany from this model.

That's enough info to get started exploring the CPS sets.

Other options

While experimenting with the Eikosany, it is easy to narrow the selection down to a single note, or none at all. E.g. skip + select same factor. Or, select any three factors.

If that happens, it makes a glitch in ones improvisations, so there's a tick box to help here.

It's in the Scales for Parts window:

Skip single note results for factor selection - When selected, this makes selections as far as it can be done before narrowing down to a single note. To take an example, selecting 3 5 7 for the Eikosany will have the same effect as 3 5 because the last 7 restricts you to a single note. You can see which factors have been ignored, because asterisks get added to them in the scale descriptions for the octave reduced scales.

Euler / Fokker genus

Make Euler / Fokker genus . This is a single large set that includes within it all the CPS sets in a single row of the Wilson CPS pascal triangle (mathematically, it's the union of them all). Geometrically, it's an n-dimensional hypercube, and the CPS sets are diagonal sections of the hypercube.

So this option adds an extra control octave or channel, which is used to select the number of factors. You use this to select slices of the hypercube, which are the CPS sets. In this way you can vary the CPS set as you play.

Selecting 1 for the number of factors gives the entire Genus.

If 2 (or 1) is one of the original factors, then after octave reduction, some notes may get repeated from one slice (CPS set) to the next in the entire product set. For instance, 2*3 is equivalent to 3, and 2*3*5 to 3*5, etc. Rather than make a scale with repeated notes, any repeated notes left in the complete scale after octave reduction get left out when making the Genus.

Keyboard mappings used for the factor selection

The complete map for the 12 keys, for case of 2, 3, 5, 7, 11 CPS set, is

C C # D Eb E F F# G G# A Bb B
select all skip 2 select 2 skip 3 select 3 select 3 skip 5 select 5 skip 7 select 7 skip 11 select 11

In the scale definitions, this is shown as -2 2 -3 3 3 -5 5 -7 7 -11 11, where the negative sign means to omit that factor, and positive sign means to include.

If you have less than six factors, the last one is repeated:

C C # D Eb E F F# G G# A Bb B
select all skip 2 select 2 skip 3 select 3 select 3 skip 5 select 5 skip 7 select 7 skip 7 select 7

1 -2 2 -3 3 3 -5 5 -7 7 -7 7.

If you want to change the way it works, you can edit the scale for each of the factor selection parts - do it after making the preset.

For the Eikosany, everything is as before, except that there are more factors than will fit on a single octave, so one needs a way to fit it all into a single octave. It is potentially confusing to use fractions of an octave here, and making each of the factor control selection regions two octaves would require six octaves for factor control.

So, this is the map used instead:

C C # D Eb E F F# G G# A Bb B
select all swap select 2 reset select 3 select 5 skip 7 select 7 skip 11 select 11 skip 13 select 13

as before, C, D, E select 1, 2, 3. F selects 5, and it continues 7, 11, 13. The black keys F#, G# and Bb are used to skip factors, as before, this time omitting factors 7, 11 and 13.

C # is a swap key - when you press a C # , then from then on, the white keys D, E, F, ... will omit 2, 3, 5, ... instead of selecting them, and the black keys will select them. Eb is a reset key - when you press it, it resets to the situation where the white keys select and the black ones omit.

So after you press the C# key, the midi keyboard map is now:

C C # D Eb E F F# G G# A Bb B
select all swap skip 2 reset skip 3 skip 5 select 7 skip 7 select 11 skip 11 select 13 skip 13

The scale definition is 1 -1000 2 1000 3 5 -7 7 -11 11 -13 13. The -1000 changes the effect of the numbers so that after pressing that key, 7 now skips the factor 7 and -7 includes the factor instead of the other way round, and 1000 makes that one into the reset key.

For Select part by input chan. and Select part by controller , the swap keys are no longer needed as one has the whole of each input channel available for factor control, so can use two octaves for each one.

The sequence of factor controls now repeat every two octaves: 1 -2 2 -3 3 3 -5 5 -7 7 -11 11 | 11 -13 13 -3 3 3 -5 5 -7 7 -11 11 | 1. So now,if you play a middle c on the factor control channel, it will select all. c# will skip factor 2, ... up to c' to select factor 11, c#' to skip factor 13, and d' to select factor 13. One can ignore the other notes, however if you do use them, they repeat earlier factors to select / skip up to c'', and then the whole pattern repeats every two octaves..

Why 2 is used instead of 1 for the factors

Wilson Erv's original notation for the CPS sets has 1 instead of 2. For example, it's the 1 3 5 7 hexany rather than the 2 3 5 7 hexany . The two notations are equivalent provided that all the ratios get reduced into the octave to make the resulting scale (as is usually done), because 2 is the same as 1 up to octave equivalence.

FTS uses a 2 here because one can then test for divisibility by 2 to test if the scale entry has this as one of its factors. It is easy to just skip all scale entries with a 2 in the factorisation, and not nearly so easy (in terms of programming) to skip all the entries that have a 1 after you count the factors and check to see if there is a missing factor that has to be the 1. So for example, it is easier in the programming to recognise 6 as 3*2 than to recognise 3 as a 3*1 because it is missing the second factor you would expect to find in a 2)4 hexany.

This has many advantages for the programming, especially as it makes it immediately possible to generalise the factor selection programming to any j.i. scales, even ones with varying numbers of factors in the ratios, with no further ado. The option to make a Euler / Fokker Genus required just a few extra lines of code because of this decision to use 2 instead of 1 for the factors.



The Gene Ward Smith transformations

Tasks | Retuning Midi Player Advanced

Intro and example - How to prepare a mdi clip for transformation in this fashion - The transformations - how they work and how to change them - Questions

Intro and example

The idea of the transformations is that one can transform a melody in major scale to minor, also, various flavours of major (otonal) and minor (utonal) into each other. The clever thing about them is that it is done in such a way as to keep notes close to their original position, so that for example, a scale passage will transform into a passage of successive notes which are still close to each other. The result is that melodies are transformed into new melodies that have large leaps only where the original melody does. With the rhythm also preserved, the original melody can then often still be recognised after the transformation.

I've included an example to try it out with:

Select hexany_phrase_transformations_source.mid from the drop list of midi clips

It was composed in the hexany scale

1/1 8/7 6/5 48/35 8/5 12/7 2/1

So enter that into the scale box.

To apply the transformations, select:


Then click the play button as usual.

This is what it should sound like:

Midi clip: hexany_phrase_transformations.mid

This is the keyboard scordatura score for it: Score , and the NWC file (for retuning).

top , start of section

How to prepare a mdii clip for transformation in this fashion

To apply the Gene Ward Smith transformations to a midi file, first you want to play it in some just intonation tuning. It's no good playing a piece that has been retuned to just intonation using some other program, as FTS needs to know the exact ratios used - this information isn't available in the standard midi file format which only gives the tuning in midi pitch bend units.

Instead, your clip has to be a standard twelve equal midi clip that gets retuned to some just intonation scale in FTS.

To find out more about how this works, see the section on How use FTS to compose microtonally - this is the same principle, except that you don't need to midi relay from another program to play a midi clip. Instead you can just save your midi clip in another program and then play it in FTS via the retuning midi player..

If you are retuning a midi clip originally written in twelve equal, the chances are very high that it will only have some of the triads in perfect just intonation. For instance the D major triad (II) is out of tune in the most usual tuning for the just intonation twelve tone scale. There's no twelve tone scale that has all the triads in perfect just intonation.

You also want all the chords used to be in tune in that tuning. If you originally composed it in a just intonation scale, then it may be okay as it is - it will have just intonation chords wherever the original one had then in just intonation - though if you made particular effect of some near just approximation in the scale or something of that sort then that mightn't work once it is remapped.

Otherwise, you will need some way to prepare it in order to make all the triads be in tune.

One way to get any midi clip into just intonation is to set the tonic appropriately for every chord that gets played. You can do by adding a tonic control channel to the midi file, and using the new Scales for Parts options - you would then play it in FTS using the same settings that you use to midi relay your composition. This will work for any midi clip - probably you will need to add occasional comma shifts and / or allow a little comma drift from time to time but that doesn't necessarily sound bad if done in moderation.

This method doesn't require any editing of the tune itself; just the addition of an extra channel to the midi file with the root control note to use - you need to have one channel not in use yet of course.

As a check that the intervals played are just, or to find which ones ar just, you can log them using Seed | Options | Log notes to text file | Log info shown on keyboard pic. for New Seed / Scale / Arpeggio , with Seed | Options all chord intervals selected (or whatever other information you want to see in the file), and then make sure you have a Seed window showing while it is playing..

Another way to achieve just intonation is to work out some mapping of the midi note numbers to a suitable scale with more than twelve notes. For instance, you could have a twenty four tone scale consisting of two just intonation twelve tone scales a syntonic comma apart. Then you could do it so that midi notes below 60 play one of the twelve tone scales (with midi note 30 say playing middle c) and notes above middle c play the other one (with say, midi note 90 playing middle c raised by a syntonic comma) - or indeed use three or more such regions. This will require you to shift some of the notes up or down by a number of octaves in the original score. For more about this method see the keyboard preset for Margo Schulter's Sesquisexta .

The tune itself can be quite short, and indeed, probably should be, as it gets transformed into a very extended piece if you apply all the transformations. So it needn't be that much work to make a suitable pure just intonation one to use with this option.

top , start of section

The transformations - how they work and how to change them

To edit the transformations, edit the file

midi_remap .

Just click the Ed button to the right of the check box to open this.

The file begins:

factors_to_remap 2 3 5 7
octave_shift_for_inversion 2

Here the factors_to_remap 2 3 5 7 are the factors to be changed by the transformations, and =M defines one of the Gene Ward Smith's mappings. Since there are four factors, the mapping needs four rows of numbers to define it, and four columns in each row.

preserve_cofg_of_scale makes sure that the tune keeps approximately the same in pitch when it is transformed. In more detail: it works out the transformations for all the notes of the scale, sees how the average is changed from the untransformed scale, and then divides all the notes accordingly in such a way as to make the average note the same for the transformed and untransformed scale.

The value you are most likely to want to change first is:

octave_shift_for_inversion 2

If the tune goes high as this one does, you want the inversions to shift up by two octaves because inversions would otherwise go very low (inversion is done about the 1/1 of the scale). If the tune goes very low, you will want the inversions to shift down instead - use a negative number here.

Fractional shifts of the inversions can also be used, e.g. octave_shift_for_inversion 1.5 .

1  0  0  0
0  1  0  0
3  1 -1  0
4  1  0 -1
!rotation order 2 

Anything following an ! is a comment, not read by the program, so the comment here tells us that this is a rotation of order 2 in the lattice. This means that if you apply it twice you'll get back to the original tuning. If it is of order 3 then you apply it three times to get back to the original tuning.

The file ends with


I R R2 R3 M MR MR2 MR3 

This is where the transformations are actually used to play the transformed tune.

Each "word" here such as TUR3 plays the clip, with all the notes transformed accordingly.

For example, TUR3 means, apply T to each note, then U, then apply R three times.

You can see exactly what is done by adding a line log at the start of the file.

Here is an extract from a log:

ratio 6/5 = 1.2

1 1 -1 0
1 0 0 0
0 1 0 0
3 1 -1 0
4 1 0 -1

-2 0 1 0

mapped to 5/4 = 1.25

This uses vector notation, (a b c d) = 2 a * 3 b * 5 c * 7 d .

Here, 6/5 is 2*3/5, which in vector notation is 1 1 -1 0.

Then, applying the transform M, one uses matrix multiplication, to get

-2 0 1 0, which is vector notation for 5/4.

The way the matrix works is quite simple. Wherever you have a 2 in your ratio, this maps to the ratio defined by the first row of the matrix. A 3 maps to the second row, 5 to the third, and 7 to the fourth.

So in this case, 2 maps to 2, 3 maps to 3, 5 maps to 2 3 *3/5, (i.e. 24/5, which is close to 5) and 7 maps to 2 4 *3/7, i.e. 48/7, which is close to 7.

So, 6/5 = 2*3/5, maps to 2*3/(2 3 *3/5) = 5/2 2 = 5/4.

One could try out any matrix, and see what it does. For instance, as Gene Ward Smith in one of his posts to the tuning list suggested, it could be fun to experiment with

0  1  0  0
0  0  1  0
0  0  0  1
1  0  0  0

which maps each factor to the next: 2 to 3, 3 to 5, 5 to 7, and 7 back to 2. So a tune with octave intervals between voices transforms to ones with the intervals as third harmonics: 3/1.

This matrix is included in the example midi_remap file but not used.

If you'd like to try your tune with this extra transform at the end, add these extra lines in the Play section of the file after the ones already given, and before the final I:


If you would like to try out this extra transform by itself, to transform each factor to the next, one at a time to give four transforms of your melody, you'd replace the play section with:



One can choose to apply a particular set of transformations to all midi clips in a particular folder whenever the transform option is in play, by making a custom remap file for the folder.

Save it as midi_remap (no extension) in the folder.

You can also do a custom remap for an individual midi clip, to specify that you always want that particular midi clip transformed in that particular fashion. To do this, make a remap file of the same name as the file, with extension . midi_remap instead of . mid .

So, the remap for an individual file overrides the one for the folder. Then, the one for whichever folder the file is in overrides the one in your Fractal Tune Smithy folder, which is the one that gets used as the standard setting.

top , start of section


If you have any questions about the method, I suggest you ask Gene Ward Smith himself. He is a regular poster to the tuning group and I'm sure will be delighted to reply. See the Tuning Group (at Yahoogroups)

Of course, for questions particularly about the FTS implementation,

top , start of section