Robert Inventor

Home Music 3D Animations Utilities Code Search Forums About Contact Accessibility
Overview of Tune Smithy
Download your free test drive of Tune Smithy
Time Signature Metronome for Rhythms and Polyrhythms
Chord Progression Player
Play & Create Tunes as intricate as snowflakes
Musical e-cards
Microtonal Explorations
Microtonal Scales and Tunings
Music Keyboard Retuning
Compose Microtonally
Retuning Midi File Player
Mouse & PC keyboard music
Mouse & Joystick Theremin
Lambdoma Music Therapy
Lissajous patterns
Audio Pitch Tracer
Sounds Harmonic Analysis
Chord Synthesis
CSound Automated Orchestra
Wave Shape Player

What's New
Up to 5th Sept 2003

5th September 2003

This is just a series of Bug fixes. To explain why there haven't been many updates recently - I'm working hard on my small programs series to complement the three large ones on the site so there has been a bit of a lull in developing FTS for a while.

When I come back to FTS first thing I will probably do is to make some smaller programs from it that are easy to use for Newbies to get them into the various ways it can be used quickly - with fewer features and extensive help and tutorials for the features they have - and intended to complement the main program.

So will make programs such as perhaps: midi keyboard retuner, notation program or sequender output retuner, polyrhythm metronome, somewhat simpler fractal tune generator, waveform frequency spectrum analyser, etc. etc. all as small programs. All things you can do in FTS already - but presented in a way to make them more accessible to newbies and perhaps young children too for that matter.

I probably won't return to it fully until late autumn at the earliest as I am involved in a couple of other programming projects as well as the small programs series right now, so should probably allow a few weeks to get each one well underway. Also want to update Virtual Flower to use graphics card acceleration via OpenG and explore some ideas for virtual 3D musical instruments too to see if they are feasible..

Many ideas for FTS once I get back to it and some feature requests I haven't been able to include quite yet - but don't hesitate to suggest more as I will add them to my list of things to do later. It helps to think about them for a while before one implements them.

11th August 2003

You can now make an echo of the Notes Played window with more space for the score (it's called the Tune window in the fractal tune views). To do this, click on it and type Shift + Enter into it.

View | Player | Thermin Opts.. | Square Layout - you can now use Shift + Yes to make a square layout with the pitch running vertically.

New check boxes in this window, Swap XY, Rev. X, and Rev. Y. The layout with pitch vertical has Swap XY selected and also Rev. X. With the square layout, X is pitch, Swap XY puts it on the vertical axis rather than the horixonatal one, and Rev. X makes it so pitch increases upwards.

New option File | Make Desktop Shortcut - makes a shortcut which starts FTS up with your current settings whatever they are. You can save a new shortcut for each of the ways you usually run FTS . Each one uses its own .ini file and startup file, so your settings get rememberd separately for each one.

So, if you have File | Auto Save Settings checked then you just continue the next session for the shortcut with everything set up as you left it last time you used it. If you prefer to use the shortcut to start FTS always with the windows always in the same place, the same scale, etc. etc. and to forget what you did in the last sessin with it, then uncheck File | Auto Save Settings - and then no matter what you do during the session, all sessions with that shortcut will start the same way.

This is the same idea as the extra option to make five extra shortcuts in the installer - the difference is that now you can make them within FTS as well and call them whatever you like there (no need to rename them after they are made).

Out | Options | Midi Out / Save timing | use fast coarse timer - can use this to reduce the latency for FTS a little. FTS calls the coarse timer when it needs to know how much time has elapsed so far in milliseconds - and it can take up to 0.3 ms to find the time using the higher precision multimedia timer.

Show this window and see what amount it shows for the measured latency of the coarse timer (gets measured anew each time you show the window). If it is only a few milliseconds then you may as well use it. The theoretical latency is quite high - 55 ms in Windows 9x, 10 ms or so in Win NT etc. But the measured latency may be far less (1 or 2 ms or so on my PC here running Win 9x).

FTS has a small amount of latency when midi relaying - not a lot but more than a midi app usually has, because of all the options it has now and because it does various checks to find out which ones to apply which all take a little time. Its a small effect, e.g. a latency of maybe 1.5 ms per note instead of the more usual 0.2 ms (will depend on speed of machine I expect), and most likely to be noticeable in very fast runs or dense chord clusters. This option is part of work I'm doing to reduce it. However, this particular method only reduces it very slightly. More to come.

Bug fixes

22nd June

Bug fixes

20th June

Added the option to colour code notes according to pitch - and colour code options to the system menus for Theremin, Tune / Notes played, Lambdoma and PC keyboard, and all the dots and keyboard pictures.

Here, the system menu is the one you get to using Alt + space or by clicking on the icon at top left of the window. It's the one with Close etc on it. Adding items here is a way of making them quickly accessible without reducing the display area for the window.

If you choose to colour code the dots pictures, FTS now colour codes the dots and triangles as well as the text for the notes played.

Added an unlock all option to the system menus for all the lockable windows - the Theremin, notes played, etc - these are the same windows as the colour codable ones actually.

Added some new options for Bs | Arpeggio and Scale Play button options | Asc Desc | Endlessly ascending and Endlessly descending - you can now set the number of octave "partials" for each tone in the endless "staircase" and you can also arpeggiate each one with a fast harp like glissando up or down the chord - surprisingly this doesn't destroy the illusion one little bit. Also can set a max midi note - the highest midi note that can be played in any of the tones, so that "partials" which are too high don't get played. It is preset to 110 - above that is high in pitch, and indeed some midi voices may not play correct pitches much higher than that depending on sound card.

Bug fixes

10th June

Updated version number to 2.4 - accumulation of small changes and bug fixes.

This is the version to use with the Lissajous 3D screen saver. Here is an image from the screen saver:

Lissajous 3D released: Lissajous 3D Download Page

You can use Lissajous 3D with FTS. Run both programs at the same time. Select Lissajous 3D | Opts | Respond to Fractal Tune Smithy chords, and then whenever you play a chord in FTS the shape in Lissajous 3D will change immediately in response.

You can use Fractal Tune Smithy to play the background music for the screen saver - once you install it, go to Start | Settings | Display Properties, Select Lissajous 3D from the list of screen savers, click on Settings, and you will find the music options for the screen saver there - you can also play any other audio files - or a randomly selected tune in a folder.

The installer now has an option to install five extra shortcuts which will start FTS up with separate configuration settings for each one. So - you'd start FTS using FTS Config 1 with one configuration you frequently need, with 2 for another one etc - just use Right Click | Rename them after installation if you want more descriptive names for what they do. They all run in the same folder so you can find all your files as before.

Technical details - the shortcut works by passing the name for the file to use for saving the settings on the command line. If you use Right click | Properties on the shortcut you'll see something like this in the Target fields:

"c:\Program Files\Fractal Tune Smithy\Fractal Tune Smithy.exe" ::IniFile Config 1.ini

If you want more than five of them, then just do more copies of the shortcut and change the end part to ::IniFile Config 6.ini, ::IniFile Config 7.ini, ::IniFile Config 8.ini etc for each one. Here you can actually use any file name you like for the files. If you want less of them of course, just install them all and delete the ones you don't want..

Actually FTS also saves some of its settings in a file called start_up_etc, so with these extra shortcuts, it saves them in start_up_etc-Config 1.ini, etc.

Bug fixes

9th June,

You can now choose which types of tip of the day to show - Midi Relaying (Midi In), Fractal Tunes, Scales etc. Each window now has a coloured star which shows what type it belongs to (with a catch all "other" type for all those not in any of the main categories). Click on the star and you see a tip for that type. Some of them don't have many tips yet - but I'll write more presently :-).

With Lambdoma auto harmony you can now use Pause / break key to switch the rotation of the keyboard on / off - and Lambdoma keyboard users can also choose whether to apply it to PC keyboard only or to that and the Lambdoma too. See View | Lambdoma | Keyboard picture options | Turn keboard around in display (selected) | PC only, and Pause key shortcut.

Bug fixes

7th June

Bs | Record to File Options | Set Html Player size. Preset to selected. Users of Quicktime need this to be selected because otherwise the Quicktime player will show at its minimum size, with no horizontal position marker. But users of Windows Media Player will probably prefer it to be unselected so that the Media Player embeded in a web page can resize itself to its standard size. Size is preset to 500 by 32 at present if you don't change anything, may get changed.

New trouble shooting entrry: Help | Trouble Shooting | When I save a midi clip in FTS and then import it into my midi sequencer it imports all 16 tracks even when it only has notes in the first one (or only in a few of the tracks). What can I do about this?

Out | Options | Resets | Apply to all channels, or Apply only to channels open at start of clip. When you choose the second option the resets are only applied to the channels you select for output in Out | Options | Midi Output Channels - or if that depends on the part, on ones that are in use for any of the parts in the Out Channs dialog. So if you only want notes to be relayed to channel 1 for instance, you can ensure that the resets also only get sent in this channel. (The new trouble shooting help explains why this isn't used as the standard setting here).

Some new work on the javascript applets included in the help for FTS - Help | Overview | Musical Note Intervals | Newbie Notes | Cents and ratios, Find all the best ratios for a scale in cents , and How to calculate the cents values for a mean tone scale from the size of the comma The mean tone scale one now responds instantly whenever you change any of the numbers including the sizes of the tempered and wolf fifths, thirds or minor thirds, and now you also see entries for seconds and the chromatic and diatonic semitones.

Various of the wndows that are used for playing with the mouse now have an option to lock their position temporarily, (each window is locked just until you close it) to lock all those window positions temporarily or to lock all those window positions permanently. This last one means that the lock is remembered from one session to the next. Applies to the Lambdoma window, the Theremin, the music keyboard and dots windows, and the Tune window. Reason - while playing using these with the mouse, it is possible for teh mouse to catch on the title bar and drag the position of the window about unintentionally. So for those who find that this happens, this is a workaround to keep the positions for the windows stable. You get to this option via the system menu - click at top left of the windows and you will see these three new options there.

Bug fixes

3rd June

Added View | Midi Relaying | Play in arpeggio or Play in scale radios - also in the Midi Keyboard retuning views - and when you select Play in scale, the arpeggio drop list gets hidden as it is no longer in use. Also added a Tonic drop list. which shows up in any tuning apart from the equal temperaments of course, to let one change the tonic of the current main window scale. Added more help to the FAQ on keyobard retuning issues.

Added a drop list of Midi Relaying (Midi In) settings to View | Midi Relaying (Midi In). You can select from this list or save your own settings to add to the list.

Theremin window can now be locked in position - go to its system menu to find the option (click in top left corner) or use the shortcut Ctrl + / to lock or unlock its position. PC keyboard and Lambdoma keyboard windows can also be locked in the same way.

With F4 - usually it uses the window positions from the end of the previous session, wherever you last left them, but now t if you do Shift + Yes to the message then it will start each session with the windows in the same position every time.  

Bug fixes

26th May evening

Out | Options | More Midi Out Options | Close midi out device in any other instances of FTS before opening here.

Means you don't get any of those messages about the midi out device already being in use if it is another instance of FTS that is using it - because if you have several copies of FTS running, and play a tune or a note in one of them, then it will first close that device, in all the other copies before it opens it in the one you are using. Will work fine also if you have several copies of FTS playing at once and relaying to each other daisy chained together etc - should be fine so long as they don't all relay to the same midi out device (which one wouldn't do in normal setups as it would muddle up the sequence of pitch bends and notes needed for the retuning). Anyway can unselect if needed.

Help | About | Exit on resource 0 - now preset to unselected. If you select it, and FTS exits because it detects a resource level of 0, you can switch the option off by using Shift + Yes to the message asking if you want to start FTS up again (this is work in progress).

Bug fixes

26th May

New randomisation option: View | Player | Randomise Tune Opts | Randomise Scale and Arp. - preset to selected, prob. 15 %

(part of continuing preparation for screen saver)

24th May

Bug fixes

22nd May

Bug fixes

21st May - evening

The retuning midi player now runs at the same high priority as the other midi relaying and the fractal tunes for the crispest chords (uses the windows multimedia timer).

Bug fixes

21st May

Views | Retuning Midi player - now it is possible to specify a preset tuning for any midi clip. The way you do it is to set it up to tune the file as you wish, then go to File | Save As Files of type Retuning Info. Save this with the same file name as the midi clip (FTS will add the extension .RTN) - and then from then on that clip gets retuned always in the same way. As a demo of this I include various compositions demonstrating a number of techniques, including the tonic shifts, which you will see in the drop list of midi clips for the retuning midi player now. I've also moved most of the midi clips that were in the Fractal tune Smithy folder into the help files sub folder - things like the midi clips of the various dominant sevenths and so forth. The main folder now only has the demo tunes

You choose whether or not to use this retuning info by selecting the new checkbox Read tuning info file if present.

If you install this upload on top of an earlier version of FTS then it will still have the old midi clips there as well. If you wish to clear these entries from the drop list for the retuning midi plyaer, I recommend that you simply delete all the older midi clips in the FTS folder before the install unless you have new ones there that you made yourself.

Note - the retuning midi player doesn't run at quite the ultra high priority that the fractal tune does and so is more likely to pause and have timing delays. I will do a higher priority version later (requires some extra coding).

19th May later in day:

Windows XP / NT / 2K users - please re-download if you have already downloaded the one for earlier today - sorry. See Bug fixes

Forgot to mention - added a new window new View | Player | Opts with various randomisation options for the fractal tunes - and also made some changes to improve the randomisation of the seed so that it matches better with the randomised tunes.

So now with the standard settings, it also randomises the Seed pos increment, Fibonacci rhythm, and tonescape (in decreasing probablity) and sets a minimum tempo for the randomised tune and a maximum tempo, and a mniumum and maximum note to play. Also some extra programming was done to deal with seeds consisting of repeating notes and so forth. What happens there is - if the seed consists of a single note repeated, as is occasionally used in some of the fractal tunes, in the randomised tunes it gets replaced by a seed that just ascends up the arpeggio for the same number of notes. If the seed has at most 5 notes and has less than 20 layers then the number of layers gets reset to 50 as otherwise the randomised tune may repeat over a very short time cycle.

This was in preparation for the new screen saver music option, which will let a screen saver run FTS in the background, playing a randomised fractal tune, using whatever settings the user has set in this window.

Bug fixes

19th May

Highlights for todays upload

 New windows: Bs | More Scales | Product scale and Lattice Scale. Various new options for Views | Lambdoma | Auto Harmony. View | Mid Keyboard Retuning | Scale retuning. lets you retune any note in the current scale as you play - i.e. actually retune one of the scale degrees. New waveforms for View | Analyse Midi Voice | Freq. Analysis | Options | Frequency spectrum options, and a new button View | Analyse Midi Voice | Synth Chord which uses them to make an audio clip of any chord using these waveforms, e.g. sine waves, triangle waves etc. This is useful for hearing just intonation chords and beats well. When running in Windows 95 / 98, FTS can now keep track of the amount of free resources, and stop the tune or close windows if they get low. Finally, FTS can be used to provide music for a screen saver now - I have made a screen saver using this feature which shows the 3D Lissajous curves - like the ones already shown in FTS but now shown in 3D and animated using OpenGL. This is nearly ready for release - expect an announcement in a day or two. Various other updates and bug fixes.

Version number update to 2.3 - accumulation of changes and bug fixes.


Better behaviour for File | Save As for the tune smithy views. This dialog shows the New Tunes folder as the one to save into, if you haven't chosen a save folder yet by saving a file into it. After that it shows whatever folder you used most recently to save a Tune Smithy file, or to open it via the open dialogs - doesn't save it into the folder that you get the tune from when you select it from the drop list any more - except that if you select a tune and then immediately go to File | Open then you find the folder the tune is in that way..

Now has the option to use the Scala convention that decimal point means cents as the standard setting. File | Number Options | Use SCALA convention: decimal points for cents.

New windows: Bs | More Scales | Product scale and Lattice Scale. Also a new Out | Options | More Options | Enable Bugs window for those bugs that turn up from time to time that have attractive effects in fractal tunes, but don't quite make it as new features.

Views | Lambdoma | Auto Harmony | Num pad shortcuts - pure otonal or utonal - new shortcuts for pure tonality harmonies. The ones from the previous upload are still there as Mixed "Polytonality" shortcuts (with some minor changes).

Also new in this window: Play the chords on several parts at once - part 16 for first note, 15 for 2nd etc. E.g. you could make it so the mouse / keyboard plays Shakuhachi, and the auto harmony accompanies it with chords or broken chords on koto, or whatever.

New feature for use when working with the Scales for Parts presets: The square or diamond playing region from the Lambdoma view can now show the scales for the parts using one row for each part - so with a 16 by 16 layout you see all 16 parts. This is useful for work with the product scales, lattice and other 2D scales, so as a result, you will find the Lambdoma keyboard icon on those pages now.

Views | Lambdoma | Keyboard Picture Options - new options here to rotate or reflect the PC keyboard or lambdoma keyboard in the display area. Created a new Auto Harmony window here for the lambdoma chords and the tonality info.

Views | Lambdoma | Options | Multi-quadrant - this is for anyone who happens to have several Lambdoma keyboards. You can connect one of them to each of your com ports, with each one offset to any position you like in the Lambdoma, and if you have four, will be able to play a 16 by 16 Lambdoma without any need to move the keyboard about in the infinite lambdoma using the arrow keys. Or - you can move all four keyboards simultaneously thus moving a 16 by 16 area about in the infinite Lambdoma.

In | Options | Scales for Parts Presets | Make accidentals scale... - this new preset uses the main window arpeggio and scale for the first part. Then each part after that is identical except that the arpeggio gets shifted up by one scale degree - all the arpeggio positions move up one.

For instance with the thirty one tone major, first row plays the arpeggio in say C major, second row plays C half sharp major which provides a way to get the half sharps, then C Sharp, then Db, D half flat, then D

So for instance in 31-et then with the major scale as 0 5 10 13 18 23 28 31, then the next arpeggio in the list would be 1 6 11 14 19 24 29 32 which will play the half sharps, then the next one will play the full sharps (where appropriate - of course it will move the E of C major up to F half flat as that is the same as E sharp in thirty one tone major) and so on. You can then switch between those using a controller, or using a region of your keyboard for scale + arpeggio selection, and other methods - as described in the help for that window.

Midi Relaying (Midi In) help - lots more work done to make it clearer than it was before. Including the help for the scales for parts section - hopefully users will find this section now much improved.

Also work on the help for the Seeds and fractal tunes - and the trouble shooting FAQ, and a number of other changes here and there.

Renamed some of the entries in the View menu to Player, Composer, Many Controls, Scale Composer, Midi Keyboard retuning Intro, Midi Keyboard retuning, ...

View | Mid Keyboard Retuning | Scale retuning. This is a fun one :-). When selected, it lets you change the pitch of any degree of the current scale using the pitch bend wheel. The way you do it is to hold down any key which plays that scale degree (in any of its octaves, or other repeats). You will find that now you can adjust the pitch of that held down note independently of any other notes you may already have sounding. When you have it tuned as you wish, release the key - and that scale degree will now be retuned to the new pitch. In fact you can watch the cents or ratio value changing in the main window as you adjust the pitch wheel. Only the most recently played note gets retuned in this way, so that is how you are able to play a chord and then adjust the scale degree of only one of the notes in the chord. You can't retune the 1/1 or any of the scale repeats using this method - if you try you find you pitch bend the note, but it doesn't change the scale at all and when you release and try again the 1/1 is tuned the way it always was. (I suppose the alternative would be to get it to change the pitch of the 1/1 and shift all the other scale degrees in the opposite direction in pitch to compensate so that their pitches remain steady - I could easily add that in as an option... Or for non octave scales, one could get it to change the non octave repeat size. Anyone want either of those options right now?...).

View | Analyse Midi Voice | Freq. Analysis | Options | Frequency spectrum options - added several new waveforms for the resynthesis of the wave from the partials - this is to transform the timbre, as you should use sine waves if the aim is to reproduce the original as well as you can. The old triangle, square and saw tooth were very buggy - fixed .Now has new rounded versions for those, that become plain harsh sawtooth and square waves if you set the warp parameter to 0. All preset to be slightly rounded so pleasanter to listen to. Also now has a repeated sine option which is a kind of a rounded square wave at its standard settings and a sine -triangle option which is another rounded triangular wave. However, if you vary the parameters for some of these- including maybe more than 100 % for some or negative percentages - then you can get quite a wide range of interesting or strange sounding mathematical curves :-). You can also use them in the frequency spectrum analysis - now here it doesn't mean anything mathematically again as the analysis should always be done with sine waves (though there is indeed a mathematically valid variant on FFT that uses square waves) - but the FFT analysis requires many calls of the sine wave function, and if you replace that by some other repeating function with the same period, then you can transform the resulting spectrum, again possibly in ways useful for creating new sounds.

This then leads into, (fanfare...) a new option View | Analyse Midi Voice | Synth Chord - which will make a chord, or broken chord for the list of ratios or cents values shown next to it, using any of these new periodic functions, or sine waves. Just select the one you want to use from the synthesis drop list in the Frequency spectrum options window.

Now the point here is that though the sounds on wave table synths may be pretty reasonable, they are looped, and also have various effects and tremulo or vibrato to a smaller extent in them. All this makes it a bit harder to hear the just intonation intervals, and particularly, to hear beats well. So use these functions instead to make your waveforms to hear just intonation intervals. An alternative here is to use a good FM synth and a plain sounding waveform with no vibrato on it (may have to make your own or modify one of the ones with it as many of them may favour a great deal of tremulo or vibrato at times). But - many FTS newbie users especially won't have anything of that sort - so this gets you off to a good start with FTS.

Also - some of these strange mathematical functions may never have been played as sounds before I imagine - it is a little off the beaten track as it isn't based on conventional FM synthesis at all (apart from the plain sine wave of course, and a plain or slightly rounded triangle or saw tooth or square isn't so unusual of course).

Added a button to make the chords in the same fashion for any Bs | New Scale or New Arpeggio window.

Out | Options | Midi Out / Save timing | Delay for effects and pitch bends after note ons - the motiation for this is mainly for use with Pan- maybe applies to others too. FTS will place the panned notes on separate channels if possible but there may not be enough of them for this to be done. Or - they may be non melodic percussion notes, which all have to be played on channel 10. In that case, FTS will play the notes on the same channel, but prefix each one with an appropriate pan value. Then it is a matter of how your synth deals with that situation. In my case, I found that most of them seem to pan the notes to the various pan positions as desired - and leave notes already in play unaffected .However, one of the synths on the SB Live!, the SW synth, will change the pan position of a note if it receives a new pan in the same channel immediately after the note is played (to be precise - if it is received within 7 milliseconds of when it is received, it changes the pan position, and if not, leaves it in its original place). The result then is that all the notes of an instantaneous chord ge panned to the position of the last note played - while if you insert 7 millisecond pauses between them, the resulting "broken chord" is panned as desired.. So this check box can be used if you encounter a similar situation with one of your synths.

Added a resource check to FTS to check level of resources in Windows 95 / 98 - you can see the levels from Help | About and if you get down to 1 % resources it will stop the tune and close any windows apart from the main window and pop up an alert so you can choose to exit FTS at that point too - the 1% here is just a place holder - go to Help | About to set it to whoever level you want, e.g. 5% or 7% would probably be appropriate, if you have a tendency to go low on resources and want FTS to respond like this..

Note for programmers - the reason this is seldom done is that Windows included no routine to find the level of resources in Windows 9x.. If you investigate further you find out that the only way to do it is to mix in some undocumented Windows routines and some Assembly language - see Getting free resource under Windows 95 . Only a few of the braver programmers end up doing this :-(.

But - I just found out recently from another site (System resources in Windows 95/98) that actually if you install the Windows Resource meter from Start | Settings | Control Panel | Add / Remove Programs | Windows Setup | System Tools | Resource Meter then this installs a tiny 24 Kb dll called Rsrc32.dll. It has one routine in it, MyGetFreeSystemResources32, (actually, it's decorated name is _MyGetFreeSystemResources32@4) - and call that and you can find out the free resources. Just what all of us Windows 32 programmers have been looking for these last few years - a 32 bit replacement for GetFreeSystemResources(...).

What I can't figure at all is why MS didn't include this 24 Kb dll as part of the Windows 9x operating system - would have saved themselves and everyone else a great deal of trouble and prevented most Windows 95 / 98 crashes!

Well I was supposed to be doing very little n the way of new options in order to bring this release to some kind of finishing point, and get started on the next beta / release cycle - but it turned out to be rather a lot instead. But now perhaps this stage is nearly over now. Plan for the next couple of months is to mainly work on help, tool tips and interactive help for FTS and any remaining bug fixes, though I doubt if I will keep away from the programming to the extent of not adding anything new to FTS :-).

Meanwhile I'll be developing some other small programs and finishing other ones that I have wished to do for some time, and will be making plans for the future for FTS. Then come back to full time FTS programming . for the next beta / release cycle. At least that's the plan, will see how it goes. Also - plan to divide FTS into a number of smaller programs - I mean, keep the original large one, but also compile parts of it into smaller programs with reduced download sizes, and a much simpler user interface focussing on a few things it can do well. The aim is to present things really clearly to newbies, and with not so much emphasis on a huge feature list. Users of the small programs then can update to the full program later if they wish to try other features. Again - that is the plan.

With the large FTS program, I have many ideas of things to add to it, including many ideas suggested by users which I wish to implement. The list of things to add never gets any shorter somehow :-). That's just to keep you in touch in a general way with the ideas for the future, as I see it at present.

Something else to mention - FTS now has a screen saver which shows 3D Lissajous patterns that swirl around, and the patterns change depending on the chords you play. It's almost ready for release - expect an announcement in a day or two. Today's upload will be able to play the music for the screen saver once it is ready.

I've removed the standard splash screen which appears before FTS starts up - there is one now which pops up after the program shows up for users who haven't purchased the unlock key for FTS - but when used as a screen saver either way, no splash screen pops up (and FTS runs invisibly). That's because you can't have any dialogs or any splash screen or anything visible at all in a program which is being used to play music for a screen saver. It will be possible for other programmers too to use FTS as music for their screen savers if they so wish.

1st May

View | Lambdoma | Keyboard Picture Options - new window with some of the options that were in other places, anything to do with what gets shown on the Lambdoma picture.

Also new options: Auto harmony chords with each note - that's (relatively) easy for a rectangular scale because any notes in the same row or column play a utonal or otonal chord. So, it plays an otonal (overtone series based, orl major type), or utonal (undertone series or minor type) chord with every note you play. This is another of Denny Genovese's ideas. It includes an option "Swap chord type when melodic movement is utonal" the idea there is that when you play a melody line across a row of the keyboard you can harmonise with chords in that row and when you play a sequence of notes vertically, play a chord in that column. Or the other way round, harmonise with chords at right angles to the direction of movement.

To use it you would also select Auto harmony chords, then choose either Otonal or Utonal say, then you will find that you get different types of chords accompanying depending on whether you play a melody along a row or a column of the keyboard.

Various Num pad shortcuts to use with this new option. These are expeimental and may get changed.

Option also to show the tonality information in black and white instead of colour to be easier to read, and to not highlight it when the note is pressed, if desired.

Caps lock shortcut to let one move the PC or lambdoma region within the display area of the keyboard picture one row or column at a time (effect of this customisable too).

Broken chords - plays ascending arpeggiated chords..

Main window now shows the view in its title bar, e.g. "bitter sweet - Tune Smithy - Play Fractal Tune"

April 26

View | Lambdoma | Entire 16 by 16 - makes the sixteen by sixteen lambdoma.

View |Lambdoma | Moves - when selected this lets one move the 8 by 8 playing region around within the display region. So for instance if you show the 16 by 16 keyboard you can move to any of the four quadrants within it using the arrow keys.

For PC keyboard, use Rectangular Scale | Movable p.c kbd region which gives a 12 by 4 region to move. You can use the Shift and Ctrl keys for the two notes at bottom right of the region.

Bs | Tempo and volume for Tune | Show tempi for note length 1 - this shows Tempo in all the fractal tune views and this window instead of showing the time for one note. It's also the standard setting now as probably more user friendly for musicians.

Also in this window, two new options: Set max tempo, and Set min tempo :-)

Try these out with any of the tunes that vary from very slow to fast. Rather than a sharp cut off in tempo, it is a gradual one. As the tune gets faster, it doesn't speed up quite as much as it did before, the faster it gets, the more the compensation becomes, and the result is that never quite reaches the maximum tempo you set, but it is all done smoothly. The same thing applies with the minimum tempo. If interetsted in detaiils of how it works, see the tool tip extra help for Set max tempo

A fair amount of work on the tool tips improving the presentation, also the fractal tune tutorial in the FAQ, and the help on how to play a seed and use the timings you actually play in a tune. That's Help | FAQ | Fractal Tunes | How do I make a fractal tune (tutorial).

Bug fixes

April 23

Now FTS has tool tips :-) - those floating tips that hover above a tool such as check box, edit field etc if you hover the mouse over it for a short while.

It also has a help window that shows extra help for may of the tips. You can tell if extra help is available if it ends with .. Then you show the extra help using Shift + F1 or from

Help | Tool tip extra help

Many of the windows are now resizable - all the ones for which it is particularly useful such as the ones with large areas for entering text, or long lists, or with graphics on them.

You can tell which ones are resizable as they all have maximise buttons, and in fact the border of the window is usually a bit thicker too though that may not be obvious - but just hover the mouse over the border, and if it turns into a double headed arrow then that shows it is resizable too.

Bs | Arpeggio & Scale playback | Fixed duration notes or Same as tune radio buttons. Used to always be Same as tune, so if the tune was a fast one, the scale or arpeggio gets played quickly too - and most important, the seed does as well, so you hear it at the speed needed for the tune.

However with the very fast tunes then the seed or scale may be extemely fast so if you blink you miss it kind of thing :-).

So now the standard setting is to play at a fixed speed. With the seeds, plays at the same speed as the scale if the seed is one with no timing info in it. If it is one with timing, then set the number here to 1 to get it to play back at the same speed that it was when you recorded it.

When you are in the middle of recording a seed, it is often most helpful to hear it played at the speed you recorded it. So, if you play it back from a Bs | Seed window, and with Use timings selected, it now always plays it back at the same speed that you recorded it, whatever the number here. To here it at the speed for the fractal tune while you are working on it: apply it to the main window, select Bs | Arpeggio & Scale Playback | Same as tune, and play it in the main window.

View | Lambdoma | Options | Add tonality info to Notes Played - shows the tonality info in a line below the notes played window. If it is a utonal tonality (upper number staying constant) it shows it a bit above the bottom of the window, and if it is otonal, shows it a bit below.

View | Lambdoma

New way of navigating the Lambdoma - the rectangular scale you see in this window is a view onto the infinite Lambdoma matrix - and now you can move this around using the arrow key, which moves it up / down or left / right by whatever you have selected for the width and height of the scale.

View | Lambdoma | Caps Lock (also in Rectangular Scale... | Caps lock etc. moves scale)

Now you can move between the various quadrants also using CAPS , NUM and SCROLL lock, and move temporarily by holding down the Ctrl or Shift keys. Only takes effect when the Lambdoma picture is active - you have to show it and also make it active by switching to it so that its title bar is highlighted.

Note, if you press Alt within this window you will no longer be able to use these shortcuts - that's because Alt switches you to the system menu - it is the first key in the sequence Alt + space to show the system menu with move, resize, close etc. If that happens to you, just press Alt again to use the shortcuts.

Bug fixes

April 18

Bs | Tune (or Notes Played) | Options - if you choose Intervals (from drop list) a check box shows up: Equidistant. This spaces all the lines evenly whatever the actual pitches, so it is more like a conventional scorre. Then you can select to show a dotted line every so many lines, and (new option) ledger lines every so often. This means, for example you could have a dotted line every 4 lines, and a ledger line every 8 lines. The places for the ledger lines get left blank on the score unless you play a note there in which case the note gets shown with a ledger line.

The scale needn't be ordered in ascending order for this option. so for example, it gives a way of showing a score for the Lambdoma. Here it is for the Lambdoma

Lambdoma score preset

You can show the score like this using View | Lambdoma | Options | Lambdoma Preset for Notes Played

You read this score from bottom to top so that the first group of four lines (one left blank) is the first row, then the next group of four with the dotted line to start it is the second row and so on. So rather than describe what pitches to play it just tells you what key to press - like tablature I suppose.

Also, now you can click on the Tune window to play notes there. Also you can play the notes from keyboard too if you click on the window first. Actually that worked before but it wasn't made obvious that you could. The notes just get played at the current time and only way to record is to record a Midi or Audio clip of your playing, as before - so it's not the desired first start at truly microtonal music notation software quite yet! - but maybe it's a very first step towards it ... :-). (Well, you have to start somewhere...)

Bug fixes

April 17

Work on Bs | Tune (or Notes Played) | Options - re-organised this window a bit. Added new option Intervals (from drop list) | Dotted lines every ... lines - so you can add a dotted line after every 5 ordinary lines if you like, or whatever, just to help make it a bit easier to sight read.

Bs | :Lissajou Options | Custom formula now does the fast parsing for formulae with any number of repeated uses of sin or cos e.g. sin sin sin cos cos (x) or whatever.

Improved help for Bs | Seed Options | Seed Pos increment

Relabelled the -> Main Win buttons in Bs | Seed (etc). Now called Get (from main win.), and Apply.

Bug fixes

April 16

Help for Bs | Find Seed from recording

Bs | Notes Played | Options | Intervals | Sharps / Flats / Mixed

- new option Mixed here - it shows all of the twelve tone accidentals as sharps except that Bb and Eb are shown as flats.

You can now also show note names and other types of information on the PC keyboard or the Lambdoma - click Play Opts in the Lambdoma view or the Opts button below the PC keyboard icon followed by Play options.

Here for example is what the Lambdoma keyboard looks like with c set to the usual pitch for the Lambdoma of 256 hertz, and in 31notation:-et

Diamond keyboard - in 31-et notation

Now some more things for View | Lambdoma

Diamonds - shows a diamond keyboard like this picture:

Diamond keyboard - with ratios

Also add a title showing the otonal / utonal relationships of current note with previous or simultaneous notes. That's from Options | Add tonality info to Lambdoma pic. There also there's a new, somewhat specialised option here to send on the tonality information encoded as a note number in a separate control channel, using one note for each type of otonal or utonal harmony detected. You would first exclude this channel from ordinary playing probably from Out | Options - or just make sure its notes are out of range of the notes you are using otherwise. The first note number here is used for otonality n/1, the second for n/2 and so on. Preset to 0 so that means midi note 0 gets set for otonality 1, and 1 for 2 etc, then similarly for Utonal - Midi note 11 gets sent for the first utonality, 12 for the next and so on.

Bug fixes

April 12

Bs | Tune | Options option to set the width in Seeds or Secs. Secs are more suitable for most of the views - but it is nevertheless useful to show a whole number of Seeds for Fractal Tune views - so this parameter can be set separately for the fractal tune and for the other views. Also added a Copy Bitmap which copies the image in the Tune (Notes Played) window.

Lots more work on the help, including new help for the colour coding window, Lissajou options, and rectangular scale window (all accessible from Views | Lambdoma amongst other places).,

Bs | Lissajous Options | Segs - lets you set the number of segments per turn - this is following the example of this Java applet:

Bs | Lissajous Options | Formula - you can change the formula used from sin x to e.g. sin cos x etc and see what happens.

In this same window, the scroll up / down arrows for the x and y increments now keep scrolling around from 0.5 to -0.5, so you can see the figure "rotating" if you keep the scroll bar held down and your comptuer is fast enough for the rendering (but FTS isn't as fast as that Java applet - I think maybe Java must use Open GL or something - FTS will need to do the same, or use Direct X as is usual for Windows apps.).

View | Analyse Mdi Voice - new option to set the maximum number of partials to find, preset to 6 partials. This is a way to help make sure FTS doens't find too many of the really small peaks, which sometimes are noise.

File | File Associations | More Options | Only show one help window at a time - if you want to show help in a new window, several in view at once, you can use Shift + F1, or shift + click on the help - or unselect this option. This only affects tthe windows with the title "Tune Smithy Help..." and the contents in a frame..

Renamed Bs | Note Time & Volume... | Sustain to Duration which more accurately describes what it does.

Bug fixes

April 10

Help for View | Lambdoma | Colour code options, Lissajou Options, and Rectangular scale.

A fair amount of work on many sections of the help. Most affected here is the help for Midi In and Midi relaying - I hope users will find the new version of these pages a great improvement - well we'll see.

Done the contents listing so that each main entry has a + or - button - clicking on the - button in effect "collapses" the listing and + expands it - for all the entries simultaneously - well actually it just shifts up / down in the contents listing between the fully expanded one and the collapsed version of it, but that is the effect for a user. Makes it easier to navigate.

New option: Out | Options | Pitch bend held notes only. This is for use with a Midi keyboard. Here the idea is that you can sustain several notes with a normal sustain pedal - or if you don't have one, use the caps lock or num lock shortcut or whatever from In | Options | Kbd Options | "Sustain pedal".

Then when this option is selected, the notes which are sustained no longer respond to the pitch wheel. The only ones that respond are the ones you actually have held down. E.g. play a major chord - now sustain it and hold down only the third in the chord - and you can use the pitch bend wheel to bend just that note. Release it, and it will stay at whatever pitch you left it at - then you can bend another note in the same way to wherever you like and leave that one at that pitch too, and so on. :-).

With this option, the notes get relayed to as many channels as possible rather than as few as possible as normally is done - so that if you have up to 15 notes in play (or 16 with a non GM synth) then you can adjust the pitch of each one individually by holding its key down again. When you go over 15 notes, then maybe some notes will stop sounding to let the new ones play (most likely), or maybe you will find that two of them bend in pitch at once when you hold down only one of them. It works fine for chords up to 15 notes (or 16 for the non GM synth preset).

Bug fixes

April 5

More work on help and help contents. Now when you show the help for a window in FTS, it shows the contents panel with the contents scrolled to show the link to that page, and also does the same thing if you show / hide the contents panel from within one of the web pages.

Bug fixes

April 4

More work on various areas of the help. Put the contents list in a separate frame, so you see it in a panel to the left of the help. Also added Help | Overview | Help for Windows which shows a list of all the FTS windows in alphabetical order, together with a link to the help for it - in the case where there is help. You'll see a fair number that don't yet have help, which I'll add presently, quite soon hopefully.

Bug fixes

April 3

Bug fixes

April 2

Views | Lambdoma | Set Duration - to set a note to play for e.g. four seconds after you press the key, with no need to keep it held down. If one uses this option you may be interested to set Drone | Switch off in pauses to 0 seconds so the drone stops immediately when the note ends. Normally the drone continues for a short while after the note ends - that is because if you are playing a melody above a drone, the drone may sound better continuous rather than as lots of short notes.

If you use Set Duration and play several notes one after another, with each one starting before the previous one finishes, they build up to make a chord. Then, to get the chord to end crisply, all the notes of the chord switch off at the same time - four seconds after the last note was played in this case.

Views | Lambdoma | Options | Com port | Custom - - so that Lambdoma keyboard users can enter a com port number greater than 2 for a computer (e.g. laptop) with a USB to Serial port adaptor.

Improvements in the help for the basic concepts page, Midi in and Midi Relaying (Midi In), scales, Lambdoma page, and some other sections here and there (more of this to come).

March 31

Bug fixes

March 29

When you unselect Views | Custom List Boxes - now changes  lists to custom lists in all the currently visible windows in FTS straight away, - before, you needed to close them and then show them again to get the effect of the change.

Some speeding up of the redrawing of the custom list boxes - means they will respond just a bit faster in fast fractal tunes (actually this was already in place but got bypassed because of a bug)..

New image icons for the Lambdom and Lissajou buttons - called Lambdoma.bmp, LambdomaPressed.bmp, Lissajou.bmp and LissajouPressed.bmp in the skin folders.

Added one or two buttons and things in places where they are useful - e.g. the check box for the Custom List Boxes in the Colours box - shows up if you select the list box colours - and if you select the Custom scales colours, shows up a button to configure the colour coding.

Bs | What to show on Keyboard pics | Colour Code Options Improvements in layout. Colour coding can now be by degree in current scale as well as by the position in the octave. Option to make a custom colour coding from the spectrum version of the colour coding - e.g. to make a spectrum from red round the hue circle and back to red with a particular number of notes per octave or scale repeat - then you can edit this spectrum as desired for your custom coding.

Improvements in layout of the Bs | Theremin Options window. The theremin now uses the same colour coding as the other windows (before, the theremin coloured the notes by the scale degrees in the current scale - now that is an option with the other windows too, so both can use the same system)..

Bug fixes

March 28

Views | Custom List Boxes - these look just like the standard ones and behave much the same too. Only difference you are likely to notice is that users who read the lists in a screen reader will get a slightly confused response because they are custom controls and so the screen reader may not be programmed to test to see if the respond to the usual list messages.

A screen reader may be able to read the list of items even so (Window Eyes can), even if perhaps it can't tell you the current selection or the number of itens in the list..

Big advantage is that they use no resources at all in Windows 9x. Now if you select this option, the only things remaining using much in the way of resources are the drop lists - and a few invisible lists and sorted lists that get created for the searches. Eventually those hididen lists can get replaced, and maybe eventually even the drop lists too (such as the ones in the main window).

Also means you can set the list box colours in FTS especially to match your current FTS skin, rather than having to keep to the same colours as all your other Windows programs for them.

However, standard setting is unselected to reduce the possibility of puzzling blind / visually impaired users of FTS :-).

March 25

Bs | What to show on Keyboard pics | Colour Code Options | Custom Colour codes - now you can edit the custom colours via the Colours window.

Added a colour wheel to View | Colours, which you see if you choose custom colours.

Also, now with the Netscape named colours, you can type the colour into the box to make the colour starting with those letters without needing to show the drop list first - since name changes opposite you get some feedback to see which colour you made.

Bs | Tempo,Note time & Volume | Vary timing by seed pos, Vary volume by seed pos. - lets one vary the volume and time so that the rhythm speeds up within each seed or slows down - either to middle, or to end of seed.

Here is an example mp3 golden_ratio_tune_vary_by_seed_pos.mp3

This is inspired by natural rhythms where the volume and speed of the music varies subtly with time, not just within a single bar as in a "groove" but also in the timings of bars, and clusters of bars - in a somewhat fractal fashion often. You can do it in FTS already actually, by making a seed and setting the volumes or times to vary from say 1 to 0.9 using the To notation - this is used in some of the example fractal tunes . However these new controls make a far easier way to do it. Also it lets one vary the amount of the effect with a single click on a scroll bar, and switch it on / off quickly.

You can now save Lissajou figures and open them - the resizable figures that you see in FTS. This means that you can show any of your figures again in FTS, to resize then remake the image, or change the colours etc - see Bs | Lissajou Options.

The colour code save now saves the colour of the keyboard background if you use the uniform background option.

Speeded up start up for FTS again. Also speeded up searches for scales and sort for them.

Added text field to show position reached in the search (as progress indicator) for Bs | More Scales | Find all re-arrangments, also for sort and search.

Bug fixes

March 22

View | Colours | What to change | Lissajou Colours - Background, Lines, Start colour, End colour and Text.

Bs | Lissajou Options - now you can choose between Follow RGB line in colour space (e.g. Red - Dark Magenta - Blue), Follow hue arc (e.g. Red - Bright Magenta - Blue), and Hue arc - long way (e.g. Red - Orange - Yellow - Green - Blue).

Here are a few examples

Update for note ons only - here the idea is that after playing a chord of say three or four notes, if you then release the keys one at a time, it will continue to show the Lissajou curve for the triad or tetrad. When unselected (which is the standarad setting), then as you release the keys it will then show the curve for the triad, then for the diad, - then stop there because you can't draw a Lissajou one note curve.

Start curve at (changes shape) - here now you also have Sync. x, y - preset to selected - but when you unselect it, you can start the horizontal and the vertical axes of the Lissajou at different points .This amounts to starting the two waveforms that generate it out of phase with each other, which changes the curve. Even when both start together, starting at a different point in the cycle will change the curve if the waveforms are of different frequencies..By way of example, if you set these numbers to 0 and 0.25, then the 1/1 : 1/1 curves become diagonal lines instead of circles.

Show curve as it is drawn - here you can draw it fast, slowly (and specify how many turns to do per second), or at Draw at constant speed until time is up - for a curve which doesn't join up, that just draws it as fast as it can, but for one that does join up, it draws it slowly enough so that the entire curve takes all the time you have allowed for the drawing to take in the Max time to spend drawing picture.

View | Colours | Choose from custom colours | Reset - reset to the preset colours if you wish to do so after making custom colours. Note - this only resets the colours that you choose from. The colours you have already chosen for the various controls remain unaffected - select the Reset all the colours radio button to rest them all.

View | Colours | Choose from custom colours | Wheel - shows the colour you are editing using a colour wheel with hue, saturation and brightness.

Views | Lambdoma | Colour code | Options

Here is the most recent version of the Lambdoma keyboard picture:

You can also use the colour coding now with the Notes Played window and with the PC keyboard layout:

Bs | Notes to Play for p.c keyboard | Colour code options.

You can also open various preset colour schemes and make and save your own ones. Naturally not restricted to octave repeating colour schemes - there is a box where you can set the interval of colour repetition, so if you want the colours to repeat at 3/2 for Wendy Carlos's gamma, say, or 3/1 for the Bohlen Pierce scale, or a stretched octave for a gamelan scale, or whatever, you can do so :-).

Here for instance is the PC keyboard 12 tone layout according to the colour scheme of the Rosicrucians:


Some work improving the exposition of the help.

Added a hand mouse pointer to the interactive windows / pictures as a cue to show that something happens if you click on them..

Bug fixes

March 18

Views | Lambdoma | Colour code

File | Number Options | Calculator - now you can enter a comma separated list of expressions as well as a single expression.

Some work improving the help and fixing some links.

Bs | Lissajou, and Bs | Lissajou Options - generalisation of Lissajou figures to triads and chords of more than three notes, based on ideas of Barbara Hero to show Lissajou figures for diads - see

The images show the theoretical generalised Lissajou figures one would get if one played the notes on pure sine waves in stereo, and then set it so that the left channel controls the horizontal movement of a plotter, and the right channel controls the vertical movement. So for instance the first one is for 7/5 and 7/3 in the left channel and 1/1 in the right channel.

Barbara Hero generates Lissajou images in this fashion directly from a stereo sine wave using a laser scanner.

Here are some examples, from FTS:

Lissajou 7/5 7/3 : 1/1Lissajou 7/5_3/2 : 1/1

8/7 7/6 6/5 2/1 : 1/1Lissajou 15/14 10/7 : 1/1

Lissajou 7/6 3/2 2/1 : 1/1Lissajou 1/1 7/6 : 1/1

And how it looks in FTS:

Lissajou 10/9 3/2 : 1/1 as shown in the FTS Lissajou window

Bug fixes

March 13

Bs | Test Pitch Bend Range

File | Open | Files of type | DX7 Sysex -> Names list (*.SYX) - extracts a list of names of the patches in the sysex - this is foruse with Out | Options | Customise Voice Menus. It's a shortcut  to get the Voice names in FTS to match with the names used in your DX7 compatible synth (e.g. the FM7) when you have a DX7 patch bank sysex loaded.

More work on the help - mainly, improving clarity of exposition of parts of it.

Bug fixes

March 11 2003

Lots of work on the help for the Overview,  Midi In , Lambdoma and MFX plug in pages.

Improved layout for the MFX plug in.

Lambdoma and PC keyboard windows - now the font resizes to fit the available space in the rectangles, as you resize the windows.

Views | Lambdoma  |  Show frequencies in keyboard picture - nearest integer

Bs | Tempo, note times & volume for fractal tune | Tempo Map | Change at start of seed - when selected the changeover from one zone to another always happens at the start of a seed

Bug fixes

December 19 4AM

Bug fixes

December 19

Bug fixes

December 18

Help for the new Lambdoma view (? icon in top right as usual).

Bs | Seed Options | Drone | Switch off in pauses after ... seconds - switches off the drone when there are no other notes in play. If you set a time for teh pause here,default 1 second, that means that the drone will continue for one second after the last note off - this makes it possible to have a continuous drone accompaniment to staccatto notes, yet switch off fairly soon after the last note stops sounding.

December 16

Added Real Audio, and Custom to the drop list of audio file types to make.

Lots of work on the help and FAQ for recording and converting betweeen the audio file types; some other related sections too.

Added the new Rectangular Scale opton to Bs | Scales Options.

General tidying up of dialogs and removed a couple of check boxes that are now no longer in use and have no effect.

Bug fixes

December 14

Views | Lambdoma - this is very much work in progress at present but I think everything there is working so those interested can try it out and get an idea of what it will be like (and make suggestions). It's particularly for Barbara Hero's lambdoma keyboards (as used in music therapy), but also done it so that you can explore the lambdoma and any other rectangular scales with mouse or PC keyboard.

Update of the modes lists to the most recent version of the SCALA modenam.par file.

Minor Version update to 2.21 (because of significant bug fix)

Bug fixes

December 08

Work on Help | Overview

Bug fixes

December 07

Bug fixes

December 06

In | Options | Kbd Options | Only retune new notes - retunes new notes and leaves ones already in play tuned as they are.

Pitch bend applies to next note only - Pitch bend applies to the next note played only. Actually your keyboard may send an additional pitch bend just before the note gets played set to the current position for the wheel which will make this option identical to Only retune new notes. It introduces something new if you use it to play a midi file using Views | Retuning Midi Player, or to retune the output of a notation program..

New FAQ section Help | FAQ | Trouble shooting.

New approach for showing Ok / Cancel etc type messages - you can move the parent window around behind the message (with its caption unhighlighted), and even minimize it, and you don't get a beep when you clickon the parent because that's a valid thing to do to now - click on it in order to move it. I think it may possibly be a first - never seen it done like this before.

Bug fixes

December 04

Work on the Quicktime section in the Test my midi player page.

Bug fixes

December 02

Parts window now has an editable field for the instrument name - and if you type a few letters of the instrument into that field it will select the instrument name including those letters. The letters can be anywhere in the word, for instance "dd" will select "fiddle" as the only instrument with a double d in it. Preference is for complete words, so "harp" selects the "Orchestral Harp", but "har" selects the "harpsichord".

Out menu now has support to play notes via Quicktime if installed. Adds two Quicktime "devices" to the Out menu. The number of extra devices to show here can be set using Out | Midi Out Devices - Parts to Play | How many "Quicktime's to show".

These all only show up if you have QuickTime, which you can get from . N.B. if you install QT be sure to answer No if it asks if you want it to handle all the Windows or Internet file associations it can handle such as gifs, bitmaps, etc etc (unless you want it to of course). Also, there is no need to associate it with midi files to use it in FTS.

The main interest in this is that it gives a way of listening to microtones even if you have an on-board sound card which can't play pitch bends. Here, QT works fine when played from music keyboard or PC keyboard with some delay for the latency - but has irregular timings in the tunes. Not sure what this means and will see if it can be fixed, but not too hopeful right now as the demo program I based the code on also has these irregular timings in tunes played one note at a time.

QT works fine if you send it the notes in advance as you do when you play a midi clip. These irregular timings are happening if you send it just one note at a time as FTS does (that irregular effect can be rather attractive in the fractal tunes sometimes :-)).

Meanwhile added  File | Midi File Options | Save & Show as Html. with Quicktime users particularly in mind, as a way to hear the tunes in QT with crisper timings.

Out | Options | Midi Out / Save Timing | Delay for note on after Effects and patches and Delay for note on after Pitch bends now as two separate options.

Bug fixes

November 27

When you search the scales list to find a particular entry - say, all the bagpipe scales, if the search results don't include any links, it adds a link back to the Scales | More Scales... drop list.

A little more help for Bs | Seeds Options | Tempo Map, and removed a link to a no longer existing entry in the FAQ about it .

Bug fixes

26th November

New pictures and a few more details for How do I check the pitch accuracy of my synth / soft synth / sound card synth?

Bug fixes

24th November

Work on the help for the relative cents notations in File | Number Options.

General work on this window to make it all more user friendly.

Bug fixes

21st November - evening

Help | FAQ | Gen | What is pitch bend and how is it applied?

Bug fixes

21st November later in day

Re-arranged the View | Play Fractal Tune and View | Tune Smithying windows with the fractal tune drop list at the bottom above the play button.

Better explanation for the midi player test - to make it clear that you need to click the play button for the fractal tune, not the ones for the seed, arpeggio or scale.

21st November

Updated version number to 2.2 - accumulation of minor updates and bug fixes.

Bug fixes

19th November

Added Help | Overview | Test My Midi Player | Special note for Quicktime users, and Test my sound card / synth - method (method itself is not new) is to type TEST into the Musical Seed box to test your current device in the Out menu - if you hear repeated notes all the same pitch then it is doing the pitch bends fine.

Bug fixes

18th November - a bit later

Bug fixes

18th November

New version of the musical geometry example page for the midi clips with javascript to play the midi clips in a new window for Quicktime users. The on-line version is at Musical Geometry.

Updated version for the FAQ How do I use the feature to make midi clips for all the file names in a web page? to explain how to make a page like this. Also adds a couple of new options - to add a rest at the end of each audio recording to let the sound die away, and to add a pause between the clips while recording them, for same reason.

Bug fixes

16th November

Improved help for the MFX plug in, which now has its own separate help page.

Some new buttons and check boxes in the MFX plug in. This includes one to test the midi pitch bend range has been set correctly by playing two notes one a semitone lower and pitch bent up by 100 cents, to check they sound the same.

Added support for Midi In relaying to the plug in - previously only retuned midi files. Also now FTS shows details of notes as they get retuned from In | Options | Notes played - more details. You can still play the fractal tune in FTS and use it normally at the same time as you use it to retune notes for the plug in as that all gets done in the background with its own copy of all the data structures needed.

Bug fixes

11th November

New audio file type for Bs | Record to File Options | Java 1.1 applets - Au 8 bit, 8Khz Mono, mu-law

Bs | Record to File Options | Convert from wav - this button shows up if you have a waveform audio recording already made, and lets one remake it in any of the supported audio formats.

Also a field File Exists that shows in that window if the file already exists, - and it shows whether the .wav file exists, or the selected audio format to convert it to, or both.

Bug fixes

10th November later in day

Buttons | Arpeggio / Scale playback | Make a list of arpeggios, broken chords or chords into audio files... - if the waveform audio files .wav already exist from a previous use of this button, a message appears asking if you want to convert the previous recordings to the new format. This is useful if you want to make them in multiple formats - e.g. make them as mp3s first, then maybe you want the same clips in Sun .au format, you can just convert the .wav clips into .au format rather than re-record them all first before converting.

Updated help for Bs | Scales Options | MOS

Bug fixes

10th November

Added a bit to FAQ entry

FTS | Help | FAQ | Scale Construction | How do I make my own scales to try out?

to explain that you need to include the 2/1 at the end of the scale for octave scales, that you need to add the word cents for scales in cents, and to explain how to save and open scales.

Bug fixes

9th November

Bs | Scale as Text | Open Scale..., Show in SCALA..., Save Scale As...

Bug fixes

8th November later in day

Views | Analyse Midi Voice | Show Freq. | Options | Find for Detail.

New keyboard shortcuts:

In | Options | Kbd Regions | Start Fractal Tune and Stop Fractal Tune - you can assign these to notes to use to start and stop the tune, e.g. say c'' or c'''' or whatever, then whenever you play that note, instead of the note sounding, the tune starts or stops.

Bug fixes

8th November

New check box: In | Options | More Options | Start tune when a note is played from midi in (a "cue" note), and skip that note

Two new FAQs

Help | FAQ | Fractal Tunes

How do I play two fractal tunes synchronised with each other?

How do I synchronise the first note of a fractal tune with a tune played from my sequencer or music notation software, or my own playing from the music keyboard?

Bug fixes

7th November

Help | FAQ | Music Making | How do I use the feature to make midi clips for all the file names in a web page?

This option was used to make the page Musical Geometry Also the installer now includes that page, without the midi clips, as an example one you can use to test the technique (plus also of interest for the CPS sets of course).

The Start / Stop tune on recieve Midi Start / Stop option is now working perfectly. For an example midi clip see my New Fractal Tunes page. Also see that page for help about how to use it as I haven't done the help for FTS for this option yet.

Help | FAQ | Music Making | How do I use the feature to make midi clips for all the file names in a web page?

6th November,

In | Options | More Options | Send the Midi Start early

also Start / Stop tune on recieve Midi Start / Stop, Wait for first note received to play first note and Extra sleep.

This is all to do with getting two copies of fTS to run in synchrony. It's very much work in progress right now. See the FTS duet on the page

Also new in this window: Relay notes in exactly the tuning received This lets one merge several midi streams without changing the tuning of any of them, if one has the channels available for all the notes. When unselected, then that is how it is by default - the midi in is treated like a keyboard to be retuned to the new tuning (of course FTS doesn't know if you have a keyboard attached to the midi in, or whatever), and the pitch bends in it are regarded as pitch wheel type bending of the notes in the current tuning. When selected, the notes are played exactly as they are received, with the same tuning.

Help | Contents | User Guide | User Guide 2 | Making Audio clips for a list of chords | Instructions

/MAKE_CLIPS_FOR_AND_REPLACE <file name> makes audio clips for all the audio file names in the file using the convention e.g. 1o1_5o4_3o2_2o1.mid for the major chord. Also changes the names in the file if necessary to make them url safe, e.g. 1/(3*5).mid gets changed to 1a3s5b.mid (a and b are used for the brackets in this file name convention).

/MAKE_CLIPS_FOR <file name> makes the audio clips but doesn't change them to url safe file names.

Bug fixes

3rd November

Help for the new /SEARCH_AND_REPLACE option (just says what was said in previous news letter).

New FAQs:

How do I get my music keyboard to work with FTS?

What should I look out for in a music keyboard?

My synth has several instruments for each voice number. How do I chose which one to play in FTS? (bank select)?

2nd November evening

Buttons | Arpeggio / Scale playback | Make a list of arpeggios, broken chords or chords into audio files... (changed name) - new instruction for the Files to Make:

/SEARCH_AND_REPLACE <file name> searches the file for all occurrences of .wav", .mp3", .au" (followed by a quote) etc - all the list of audio formats from Bs | Record to File Config . It replaces them with the currently selected audio file extension.

Example of use:

/SEARCH_AND_REPLACE list_of_nice_chords.htm


To add the insruction, click on Files to Makeand place the isntruction before the list of files to make.

The idea here is that if the file is an html file with links of form <a href="5o4.mid">..</a> etc, or a vrml file with urls in it such as AudioClip {url "3s7.mid"..} then these links will all get updated to the new audio format whenever you remake the clips.

2nd November

Bs | Recording to Temporary Memory | Options | Recording Type - has support for stereo recording - in fact had it before if you typed say 44.1 kHz stereo into the box, but now has it listed in the drop list - also displays it properly as two channels. However if you want to do frequency spectrum or wave counting work you need it in mono for FTS to analyse it - there's a new button to do that conversion to mono, which shows up as soon as you do a recording in stereo.

Out | Options | Midi Out / Save Timing | Send Midi Start / Stop - sends the Midi Start Sequence Sysex (0xFA) at start of tune and the Stop sequence sysex (0xFC) at the end of it.

Bug fixes

1st November later in day

Bug fixes

1st November

Bs | Record to File Config | Start recording just before tune starts - New thing is that if you unselect this,  the tune starts playing while the recording to .wav is initialised, which can take a fraction of a second to do. Then the tune pauses just before its first note until the recording is under way - means the audio format recordings start crisply immediately before the first note played.

You can now also save the Bs | Recording to Temporary Memory to disk in any of the supported audio formats using File | Save As and then enter the appropriate file extension, e.g. Test.mp3 to save it as an mp3.

Bug fixes

31st October

Seed | Options | What to show on keyboard picture | Show untransposed keys

Help | FAQ | How do I convert audio formats to read / save in FTS?

Bs | Record to File Config - added mp3, au, aiff formats etc - 21 new ones in addition to the original Midi and wav. FTS can save / open them if you install LAME and SOX.

Added /mp3 and /audio instructions to the file format for Bs | Arpeggio / Scale Playback | Make a list of arpeggios, broken chords or chords into midi files...

Help | FAQ | How do I make a fractal tune that stays within a limited range of scale notes?

Help | FAQ | How do I make a fractal tune with many layers that starts at some position other than degree 0?

Help | FAQ | How can I see which options I'm using for a fractal tune?

29th October

More work on the fractal tunes.

Biggest changes to: bassoon_prime_harmonics.ts, and exp._in_add_to_seed.ts.

Other minor changes in a few of the fractal tunes. Incidentally if you have edited any of the original fractal tunes yourself you won't see these changes because I set the new file date to a short while after the original date of the file - and the installer is set to update your files only if the update is more recent than the version you already have. So if you edited them, your version will be more recent, so won't get replaced. (If by chance, you've done this, and still want to see my new versions of them, install into a new folder :-))

Bug fixes

28th October

More work on the fractal tunes so they sound good on as many soft synths as possible

Bug fixes

27th October

A little more work on the FAQ.

Some more updating of fractal tunes to sound better in the Roland Sound Canvas.

Bug fixes

26th October

Some work on the FAQ - mainly just to express a few things more clearly.

Bug fixes

25th October

View | Colours | skins Readme - work on this to make it clearer and easier to read.

Help | Tip of the day - work on many of the earlier tips in the list to improve them - for conciseness and clarity.

Bug fixes.

24th October


View | Analyse Midi Voice | Freq. Analysis | Config | Freq. Analysis Layout | Show line to delineate mean value area

Bug fixes.

22nd October

Improved layout for Bs | Seed Options | Alphabet seeds, and help for the Remainders method and Division method (as they are now called) in that window.

New check boxes to use the Volumes and Times in the Seed as Text window, and also added a new drop list here (from File | Number Options) to show the volumes as 0 to 1, percentages, or 0 to 127 (as for midi velocities). If you uncheck the Volumes and Times boxes here, and then save the tune, the times and volumes get saved but are no longer used in the tune. This makes it a little easier if you decide to revert to them later.

When you use Bs | Seeds | Main Window -> to copy a seed from the main window into the seed window, now sets that window to use the times, or volumes depending on whether the original seed uses them. (Sorry, not explained that clearly, but try out the Seeds window and it should be clear enough what I mean here).

Bug fixes.

18th October evening

Version number update to 2.1 - for completion of FAQ + many additional features and bug fixes since release 2.01..

Time out when Midi Relaying (Midi In) and playing fractal tunes for freeware version reduced from ten minutes to five minutes.

Price for Play reduced by $5 to $14 - that is to bring it in line with prices for computer games (in UK anyway).

Similarly Midi Save reduced to $7, and rest accordingly., Midi Relaying remains at $31.

18th October

Finished first version of the answers to all the FAQ questions so far.

Lots of work on sections of the help that they link too as well.

New tune DNA_music, as part of new tutorial FAQ section about how to make DNA sequence fractal tunes.

Bug fixes.

14th October

New window View | Analyse Midi Voice | Freq. Analysis | Config | Freq. Spectrum Layout

This has some options originally in Config | Freq. Spectrum Config and Pitch Det. | Find Peaks in the Spectrum....

Added the frequency as a scale in cents to the partials text results.

Also adds new options to show the partials found as cents values from the Pitch window 1/1 or the lowest frequency partial, and to show a line of +- one cent above each partial- to give an idea of the accuracy, Also options to label all the partials, or to label the first partial found in each harmonic series (useful when analysing chords).

More work on the FAQ, particularly the section on frequency analysis (Help | FAQ - general).

Bug fixes.

11th October afternoon

A little more work on the FAQ - editing of a few loose ends and out of place text.

Now when you show a scale in FTS from SCALA using File | @smithy, then the scale gets automatically added to the scales drop list so that you can go back to it again. Same happens for any scale opened in FTS by passing it on the command line. If you do this mutliple times, replaces the old scale - the way it works is that a search is made to see if any scale in the drop list has the same name "Saved scale from SCALA" and if so it gets replaced.

Bug fixes.

11th October

More work on the Help | FAQ and on sections of help that it links too. This is still very much mid edit, and it will probably continue to be so for a few more days more - then I'll have caught up with the main ones to do and will add things to it more gradually from then on.

View | Analyse Midi Voice | Auto remake - select this to auto remake the chord when you click the play button - means that to try out a frequency analysis for different chords you just enter the new chord in cents and click the play button, and don't need to click the Make chord to analyse button as well each time.

Forgot to say last time - if you show several Bs | Scale... windows - and set up each to show its own scale - and then show the PC keyboard layout window - well you can change the scale to play from the keyboard by clicking on each ones caption in turn, or the main window - that was there already. With the 9th Oct upload I also added shortcut to cycle through the scales using the tab key (above Caps Lock) on the keyboard as a shortcut to quickly change the scale while playing from PC keyboard.

Bug fixes.

9th October

Help | FAQ

More work on the FAQ - and divided it into three sections + complete list.

More work on the help too, particularly for CPS sets - and mentioned  the Roland Sound Canvas as another alternative GM synth like the Yamaha one - seems pretty good so far, not yet done many pitch measurement tests yet but preliminary tests are reasonable.

Views | Analyse Midi Voice | Make chord to analyse - use this first, then use Play as usual to find the frequency spectrum of the chord - just as you find the frequency spectrum of a single note.

Add harmonic series analysis - you will find that it now shows the analysed list of fundamentals of the chord as a scale. The new + sign after can be selected to show more details in the analysis of the fundamentals of the chord.

Bug fixes.

6th October

Started work on a FAQ for FTS:

Help | FAQ - first few questions - first draft, - plus more work on the help.

Bs | Seed Options | Drone | Drone Presets

Bs | Seed Options | Drone | Resound every ... PC keyboard or mouse notes, or ... Midi In notes

Added drop list of arpeggios (lmd file) for the three pentatonic modes for the scottish bagpipe scales for Scales | More Scales | Bagpipes.

Views | Analyse Voice | Use original volume envelope

Bug fixes.

30th September

Bs | Arpeggio / Scale Playback | Wav

- this lets one make the midi clips in .wav format by playing them all, and recording them as they are played (needs full duplex soundcard).

This is particularly for use when making the clips in .wav format for the new musical geometries window in Virtual flower.

Bs | Seeds etc. Windows config | Don't highlight drop list selections

(was there before but forgot to mention it)

16th September

Mainly updates to the options for freeware version of FTS. Now has a limit on six saves per session. Also in the freeware version you can now play any of the midi retuning presets for free, or the example fractal tunes, with no time outs, only times out when you change something - did this for an earlier upload but but I think I forgot to mention it.

14th September

Added option to start FTS with ::smithy.cmd as the command line argument, to make the smithy.cmd file in the SCALA folder - in prepartion for combined SCALA / FTS installer.

Buttons | Scales Options | Scala Scales | Make all the SCALA related files - Now shows scrolling list of the file names for the drop lists of modes as they are constructed.

Updated help for Buttons | Arpeggio / Scale playback | Make a list of arpeggios, broken chords or chords into midi files... and some work on instructions in the files list - in preparation for adding musical geometry to Virtual Flower.

Bug fixes.

12th September

Buttons | Arpeggio / Scale playback | Make a list of arpeggios, broken chords or chords into midi files...

The idea is to use a file name that describes the nature of the clip you want it to be, so e.g.


is the file name for a septimal minor chord.

Then give FTS the list of file names you want and it will make midi clips of all the chords  for you. This was already an option, and documented in a rather out of the way section of the help, but it is now more easily accessible.

All explained in the help for this window. I'll be doing a bit more on this as the idea is to use FTS and Virtual flower in collaboration to make musical geometry VRML figures such as the dekanies and hexanies. This requires many midi clips for each figure, which is where FTS will come in - and VF will make the VRML from a template.

More work on the help.

Bug fixes.

3rd September

New window Buttons | Alphabet seeds. Method of using gene sequences, or a name or phrase etc. as a seed. See the help for the window for details.

New options: Buttons | Seed Pos Increment | Cycle at pos in seed, and Cycle at.

Help for this window - didn't have any before.

Work on the help for seeds, and for options for playing from PC keyboard, and the layout of related windows..

Bug fixes.

22nd August

Minor version number update from 2.0 to 2.01.

New option:

Out | Options | Change volume range

A little more work on the help - mainly the Overview page.

Much improved help for Out | Tuning programs Config

Bug fixes.

19th August

More work on the help - Overview page, and some more on Midi relaying.

Fractal tunes option: Voice | Auto sel last - always enabled now. Used to be disabled when the Parts window is shown - now it automatically changes the highlight in the Parts window to the last one in the fractal tne when you change the number of fractal tune parts. Has no effect for Midi relaying.

Bug fixes.

15th August

Bug fixes.

14th August

Out | Midi Out Options - new help for this - only had help for a couple of the options before = Help | Midi In | Midi Out | Midi Out Options.

Help | Overview | Purchase Now section updated. Includes updated description of the Affiliate Program under Purchase Now | Affiliate Program..

Help for Fibonacci tonescapes - a number of improvements - Help | Seeds etc | Fibonacci rhythms and tonescapes.

Bug fixes.

8th August evening

Bug fixes.

8th August

Help | Midi In and Midi In 2 - many sections much improved (what a difference it makes to look at it afresh after a couple of weeks)

Help also updated to show the new $9.50 registration level (it is now $9.50 so that if you buy two of them you can get a Midi Play / Save registration key for that). Also includes information about the Affiliate program - a way of getting a commission for any users who find out about FTS through a link on your web site - see Help | Overview | Purchaes Now | Affiliate Program.

Bug fixes.

6th August

Some work on the help, and fixed a few broken links in the help, mainly to on-line sites. Moved some of the tune smithy files for the help into a new subfolder called for_help, to reduce the number of files in the main Fractal Tune Smithy folder.

FTS now has a new $9 registration level for Midi Save / musical e-cards only - this may perhaps be of particular interest to users of the new Virtual Flower program - just about to be released - to make midi clips to in-line into the Virtual Flower VRML files, and to use FTS to send images of Virtual flowers as musical e-cards.

30th July

Bug fixes.

25th July

Mostly work on the registration process, order forms and so on.

Changed the version number to 2.0 to fall in line with the standardised numbering system of some download sites - changes in the first number indicate a major update, and FTS 1.09 is certainly a major update over 1.082!

So 2.0 and 1.09 are identical apart from the updates and the few bug fixes etc. since the release, and from now on I'll fall into line with this more usual version numbering approach.

Bug fixes.

15th July

A couple of broken links for help Help | Overview | Register - fixed.

14th July

Buttons | Drop list of Arpeggios / Scales | Set default... to specify which arpeggio or scale to show when you open the list.

In the Midi Relaying (Midi In) view, this defaults to diatonic or the arpeggio with name most like that for the scales with their own modes lists, and Follow scale for the other scales.

In the fractal tune views it defaults to pentatonic for the twelve tone arpeggios list, For the other scales with modes lists, it defaults, to whichever arpeggio in the list comes first - if one uses the default way of ordering the lists. Anyway now you can change it particularly easily.

The button sets the default for your cuirrent main window view, and to set the other one without changing the view, use Ctrl + click on the button..

Made two dialogs for the MTS retuning sysexes.

Out | Options | Tuning Programs config - all the options you need for a synth that uses the defaults of 0 for the synth id, tuning number, and tuning bank.

Tuning Programs config | Tuning program numbers etc - options to set the numbers for a synth that uses non zero synth id, or multiple tuning numbers and banks.

New button:

Out | Options | Tuning Programs config | Show current or most recent tuning table...

To configure how the table is shown: File | Number Options to choose how to show the intervals - i.e. ratios or cents, decimal, herz etc and whether to show the word "cents" or use the Scala convention that decimal point = cents. Pitch window, then select from the drop list of ways of showing the note name to choose how to show the note names.

Note that if you retune to the arpeggio instead of the midi in note range, then some of the notes may well not be retuned. Even if retuning the entire midi note range, then some of them may be mapped to the same midi out note by the mapping used by FTS, and so not need to be retuned. So the table may well have gaps in it. This is true for all the tuning methods - the bulk dumps also have an option to leave any of the notes at whatever tuning they already have and not retune them anew.

Also this dialog shows summary details of the most recent sysex sent and the number of sysexes sent.

Tuning Programs config | Send 127 note tuning whenever scale / arp. changes & on open Midi Out

This is because of an observation that one doesn't have to leave the single note retuning messages to the last minute and retune them a few at a time. Actually this method of retuning lets one tune up to 127 notes. So why not retune all of these whenever the scale or arpeggio changes, and only retune in the middle of Midi Relaying (Midi In) if one encounters notes not in the original list of 128 notes.

The resulting sysex is a little larger than the 128 note sysex for the bulk dump, but this makes no significant difference in speed of relaying if you are using Midi Yoke or the like. In fact, the 128 note table relays pretty much as quickly even as a sysex to retune a single note - in about the same time as a note on / off pair.

Tuning Programs config | Forget previous note tunings in order to make a nicely ordered tuning table

Motivation here is: as it was before, if you keep retuning to new tables, it retunes only as many notes as are necessary, and the old ones remain in the table. The way the retuning is done, the midi note numbers in the table that get retuned can be in any order whatsoever, because when FTS is about to send a note to be retuned, it does a search through its copy

Test Midi File Player & Sound card / Synth
Download Tune Smithy
Tune Smithy Manual (or popup)
Search Manual
FAQ & wiki
What's new
New Features Blog
BUY Tune Smithy








To find this feature:
look in the
Tune Smithy Tasks window for:
Acceptable Use Policy
Special Offers
Site Designed with advice from Sojo Media (Thanks!)
© Robert Walker 2008
tool tips by overlib
Robert the Inventor's programs
By Robert Walker

NEW metronome software - Download Bounce Metronome Pro with bounces and conducting patterns to help you stay in time.