Help for Tune Smithy
Wish list
From Tune Smithy
Intro
This is the wish list for Tune Smithy
For more about this see What is the wish list for
See also: Bounce Metronome Pro Wish List and Lambdoma Music Therapy Wish List
Already planned for the future
Tools for retuning a soundfont or compensate for tuning discrepancies
See discussion here: Pitch Resolution and Retuning the Yamaha SW1000XG by hand and here Ability to retune soundfont files in FTS
Motivation here is that some soundfonts that are fine for ordinary twelve equal work don't have quite the tuning resolution you need for some microtonal work.
For instance, many are only tuned accurately to within a cent or two (i.e. within a few hundredths of a semitone). For some microtonal work you want better than a tenth of a cent accuracy at a minimum.
This is something FTS is ideally suited for since I have done a lot of work to make it much more precise at determining the pitch of a note than normal frequency analysis tools (which usually don't need to be any more accurate than to within a cent or two). I developed several techniques to improve on the accuracy of frequency analysis in the particular case of musical instruments with well defined pitches, to the point where with a relatively short sample you can get easily accuracies of a hundredth of a cent or better.
There are two things you can do here. If the soundfont is an integral part of a hardware device e.g. soundcard or synth, and you can't access it directly to change it, then can program FTS to compensate for any tuning discrepancies.
If the soundfont is one you can access and modify, you could retune the font itself.
ROADMAP
- program FTS to automatically record all the notes for a midi instrument. Probably saved as a lot of recordings in the same folder with note number as part of the file name. You can skip this step if you have access to the soundfont. This tool looks useful as a way to export all the audio files from a sound font SF2 splitter
- get FTS to auto analyse each note (perhaps as it records it). Probably save those as text files with same name as the audio recording.
- get it to calculate pitch offsets for each note from the analysed frequencies. It could just add this information to the text files it saves. Also have some simple way to re-analyse any sample you feel needs more attention and resave a new version of its spectrum analysis. Make it readable for the software for the next stage 4.
- Get it to read in those pitch offsets again and collate them together in a big table. Then use that to adjust the pitches of notes just before they are sent, to compensate for the fine tuning inaccuracies of the original samples.
- In the case where the samples come from a sound font - could get it to auto retune the samples either by interpolation or by sample rate adjustment.
- Add an option to dig into a soundfont and auto retune all the samples without even exporting them.
How it would work
Pitch detection
The automatic pitch detection may need some supervision so that you look at a few of the samples for each instrument by hand to make sure it is finding the correct pitches. However, it is a much easier task than extracting pitches from a recording because you know what the target pitch is to the nearest midi note (you can rely on the soundfont samples to be only a few cents out, certainly not as much as a quarter tone and the midi note it is intended to approximate is given in the soundfont - so the midi note is unambiguous).
It is much easier to find the pitch offset once you know the intended pitch of the fundamental to this accuracy as there is usually only one partial that is anywhere near the desired pitch and you can also find which partials are close to multiples of the desired pitch as well.
This might work even for tricky sounds like bells and even if missing the fundamental. Only thing that might throw it are doublets and you might need to add in doublet detection for bell sounds and have some way to deal with them (use lowest pitch, highest pitch or average for the doublet say, or guide the choice by closeness of fit to the other partials).
So the automatic pitch offset detection is certainly feasible.
Retuning
Then the way the auto retuning would be done is to adjust the sample rate for the audio file for each sample. This has the advantage that it changes the pitch without changing the positions for the loop points. It's a known method of retuning a soundfont sample, and can get you to the desired pitch with an accuracy of better than 0.02 cents for an audio file originaly at 44100 samples per second. This accuracy of about a fiftieth of a cent is good enough for most microtonal work.
Status - each step 1 to 5 is straightforward, though may take some time. Step 1 can be implemented very quickly and I will do it when I get a bit of free time (two days would be plenty and it may only take a few hours). Step 6. may be easy depending on how easy it is to implement using the Creative SDK.
Multi-touch playing for the virtual keyboards
I.e. the screen of your computer or laptop would be touch sensitive, and you'd be able to play the on-screen virtual keyboard using two or more fingers at once to play polyphonic music.
I should be able to make this available soon after the release of Windows 7 some time in 2009. It should be easy to program and unlikely to introduce new bugs. See: Multi-touch polyphony and Windows 7
Support for the Sagittal microtonal notation system
This is a very versatile microtonal notation, suitable for just intonation, and scales with many notes to an octave etc. Support for it in FTS is already mostly coded for. But it needs to be tested and debugged and updated.
Because of the complexity of the coding, and the risk of adding new bugs to the program if I enable it, then I've postponed the release of it until the next beta / release cycle. I hoped to release it earlier, but have had too many things to do after the release of FTS 3.0, which still needs work adding extra help and fixing things and improving the user interface, and it no longer seems a good idea to introduce such a major new feature before the next beta / release.
Wishes
If the wishes are easy to do I'll do them right away for Bounce Metronome Pro. But Tune Smithy 3.2 is in BETA at present, so can only add them to the beta until the 3.2 release some time in perhaps spring or summer 2010. Most features in Bounce Metronome Pro will automatically get included in the 3.2 release for Tune Smithy.
So, see also: Bounce Metronome Pro Wish List
See also the Wish list forum
(Please edit below here and add any wishes you have for the future)
File | Save As | Audio (WAV, MP3 etc.) - EASY AND FEASIBLE
- easy to do after update to 3.2, using the Audacity plug in to convert midi to wav - which you can already do in Bounce Metronome Pro (with any sound font bank)
Add option to start and stop play when screen saver starts and stop or when Windows starts up
Easy to do when I release the next version.
Get seeds for the fractal tunes from a midi file
What you can do already is to play the seed from your music keyboard. Also using a virtual cable you can play a midi file in another program e.g. a midi player or sequencer or composition software and route the notes to one of the New Seed (Ctrl + 3) windows in FTS. For more details see the tool tip help for the Edit radio button in New Seed (Ctrl + 3).
The idea here is to add an option to FTS to open a midi file to get the seed from it directly. May be most useful for midi files with short monophonic melodies.
I'm not sure how useful it would be for polyphony. If the idea of recording polyphonic seeds as you play was explored one could do that. Also another idea to explore here is to take the notes from separate midi channels in the midi file and put them into successive layers in Seeds for Layers (Ctrl + 31). Note that FTS wouldn't normally play the seeds synchronised as they were in the original. Generally not sure how useful it would turn out to be to get polyphonic seeds or multiple seeds from a midi file - but it could be explored at least.
Another related idea one could perhaps explore is to see if one can get the chord progressions automatically from a midi file to make a tune with the same chord progression - and perhaps get seed fragments from motivic phrases in the file. This is getting more like "hand waving" and I'm not sure how easy it is or how it would go. The idea would be to e.g. make something like e.g. the example La Folia and GreenSleeves fractal tunes more automatically by opening a midi file for the original tune, and then you get the chord progression from it and maybe some motivic material as well, and transform it into a fractal tune based on the same chord progression.
I'll probably look into all this for the next beta / release cycle. If there is a lot of demand or it is easy to do then I may investigate it before then.
Record polyphonic seeds for fractal tunes as you play
The motivation behind this is that you can already make seeds with chords in them. In fact in Options for Seed, Arpeggio & Scale Play buttons (Ctrl + 28) there's an option to convert the chord, sequence or broken chord into a seed for the fractal tune.
This works by setting the sustain in Tempo and volume for fractal tune (Ctrl + 20) to the number of notes in the chord of most notes in the seed - and then whenever you want e.g. a two note chord, play it as a note with time duration 0, followed by one of normal duration. When the melody line plays a single note, you do the same, but set the volumes of the other notes in the chord to 0, so that they don't sound.
Since any polyphonic music can be broken up into two or more note chords with sustain, then this could play any polyphonic music as a seed - so long as you don't mind breaking up some of the longer notes into shorter notes. E.g. if a single note in one melody line is accompanied by two notes in the counterpoint, you have to break the single note into two identically pitched notes with different notes for the accompaniment.
So in principle with that restriction, you could record any polyphonic playing as a seed. It mightn't be that hard to program. Though how useful polyphonic seeds would be for the Tune Smithy sloth canons I don't know - maybe it would be most useful for simple phrases with a few chords.
I'll probably look into this for the next beta / release cycle.
Rewire Support
I plan to look into this for the next beta / release cycle. As a sole trader I'm legally permitted to add rewire support according to Propellerhead. But I haven't yet looked into the details of how it would need to be coded, or how easy it is to do.
Make the Tune as Score editable
This is one of those things that looks simple because it is easy to use. Unfortunately, the programming is very complex. I can't think of any easy way to attempt it myself - unlike e.g. text editing, then there's no standard windows component to just slot into your program. With a music score, you would have to write it yourself from scratch at a very low level.
The best approach is probably to use any existing notation software and hook it up to FTS for the retuning. See Compose Microtonally and Tutorials:How use FTS to compose microtonally.
It would be a great feature if it was easy to do. Unfortunately, unless some completely new approach is possible, e.g. someone releases a reusable music score component for anyone to use, it has to remain just a wish for now.
Play Direct Music Sound devices directly such as the Microsoft GS Wavetable Synth
Some time, if it is easy enough to do, I may add code to play DirectMusic devices directly in FTS, to avoid the fifth second latency - so that you can play it directly without the need to use DirectMusic producer. I've no idea yet about how easy or hard it will be to do.
See FAQ - Soft synths#Microsoft GS Wavetable Synth
Auto Translate

