How to improve your musical experience using a program that plays notes via Midi such as Fractal Tune Smithy

Introduction

Programs like FTS rely on other software or hardware to be the audio engines to actually make the sounds you hear. If you use them with good synths or soft synths then you can play in a musically satisfying way - good quality sounds and you can play the notes from a keyboard with no perceptible latency at all. However often your first experience of the program may be that the latency is high and the instruments are poor in quality. You can deal with that - but not in FTS. You need to do it by changing to another synth or tweaking its settings. FTS doesn't have any audio engine of its own (so far anyway), and can only use midi devices that you already have installed.

I've written this page for FTS users - similar remarks apply for users of other programs such as SCALA.

You may well get high latency when you first try out FTS - a delay between playing the note and hearing a sound. This depends on the soundcard. Some cards have decent midi synths with low latency - for instance the SoundBlaster Live! hardware midi synth has a respectably low latency. This may depend on the particular brand of SB sound card - for instance the Extigy I believe has a soft synth for its sounds rather than hardware so probably has higher latency.

Some cards though have synths with very high latency or variable latency. My laptop soundchip's midi synth is generally pretty low latency, but will now and again sporadically switch into a 0.5 second latency mode until you close it and re-open it. Actually I think it isn't really the soundcard as such that's doing that, but rather the Microsoft GS Wavetable SW Synth which it is using to play midi. That seems to be quite a common one and if you have that one then it may be the source of your latency problems.

This is nothing to do with FTS - there is nothing FTS can do to reduce the latency of your soundcard midi synth.

One might wonder why they make midi synths with such high latency. The thing is - getting latency low is hard to achieve. If the card is mainly used just to play midi files or tunes rather than to play in real time, then it doesn't need low latency. So probably it is a low priority for the hardware engineers and software programmers.

Anyway you can fix it even with a not particularly midi orientated soundcard simply by installing a loopback and then installing a better sampler or soft synth to use as your midi device.  

Some programs also install themselves as midi devices on your system. For instance if you install Giga Studio then it will add itself as a midi device and then appear on the Out menu for FTS. So does Roland Virtual Sound Canvas, and the Midicode synth. These don't need an extra loopback to use them from FTS.

Most however don't install themselves in this way and for those you need a loopback to play them from FTS.

What is a looback (for newbies)

A loopback is the recommended and standard way to route midi notes around from one program to another. The one familiar to most musicians who want to do this is Midi Yoke. However that has one big drawback on XP - that you should only install it if you don't use Giga Studio.

So it is worth listing all the ones I know of, with their various benefits.

To explain how these work once they are installed:

Here I have selected the LoopBe internal midi loopback in FM7 for input

Here I selected it for output in Tune Smithy 3.0 (the next release candidate)

That's it done. Now when you play the tune in FTS you will hear your notes played in the FM7.

Note: I've set it to let FTS tune the FM7 with MTS tuning table sysexes, because that lets you use almost unlimited "pitch polyphony" with it. It means that you can change its tuning directly via midi instead of having to load the tuning separately in the FM7. Just select a new scale in the drop list in FTS and the FM7 will immediately be retuned to use that scale. This is one of the very welcome features of the FM7 that it lets you do this - as do some other of the Native Instruments software. Most soft synths require you to use the more clumsy (but still very useful) method of loading the tuning in the synth itself by opening a text file for the tuning each time.

So - how can I set my computer up to be able to do this?

Well the easiest I know to install is the loopbe1. This is suitable for users of XP and Win 2K. Go to the Loopbe1 site to get it. Then you just run it as you do any windows installer.

Like any other wizard it is just a matter of going Next, I agree, Next and so forth.

When you install it you get this message from XP, which can seem scary to Newbies who first encounter it:

It doesn't mean much though, perhaps unfortunately. The expenses for logo testing are too high for any freeware author to consider it so it doesn't tell you anything about a freeware product (the costs includes thousands of dollars for a special hardware setup for the testing, and hundreds of dollars each year to keep your certificate current). Even commercial products are often not logo tested. So the situation is pretty much as it was with Windows 98 and 2K etc that if you want to check if the driver is okay you need to do a web search and look for forum posts and reviews of the product to see if anyone has reported any problems.

Sorry to ask you to ignore warnings like this. Do pay attention to the rather similar messages you get about a web site that wants to automatically install a plug in for Internet Explorer when you are web browsing - only do that if you trust that the site is a reputable one.

Software loopbacks are widely used by musicians. For instance often in reviews in Sound on Sound, one of these loopbacks will be recommended as the way to use various programs with each other.

So, in this particular case the warning is nothing to be worried about at all. Just keep going. You will get a couple more warnings in the same vein from Microsoft most probably. Ignore those too - I mean - ignore them if they are just more warnings about installing unsigned drivers or about windows logo testing. We know that these software loopbacks are okay and don't cause any problems for XP users - well apart from Midi Yoke + XP + Giga compatibility, which is a known issue and seems to be to do with how the Giga driver works rather than XP.

Now you are all set up and can enjoy using Loopbe1 on your system :-).

The loopbacks I know about are:  

Loopbe 1

This is a new one developed in 2004, compatible with XP and Giga. Only available for XP and 2K:

http://www.nerds.de/en/loopbe1.html  

This is one of the easiest of them all to install. You just run its installer like a normal installer for any Windows program and that's it done. However it only adds a single midi port. You can however relay notes to up to 8 applications through that one port. This means that you can play several synths at once through Loopbe1 if you set them to receive notes on different channels - you can set which channels to send the notes on in FTS from Out | Options | Output channels for parts and polyphony.

It is able to relay sysexes - some of these can't. This means that you can use it in XP with FTS to relay MTS tuning table sysexes to programs that recognise them such as the FM7. It is the only commercial one in this list (very low cost), and is free for non commercial personal use.

Midi Yoke

Highly recommended for Windows 9x / ME.

This one should not be installed in XP by GigaStudio users - just installing it on XP slows Giga down to a crawl even if Midi Yoke is disabled - for some strange compatibility reason. If that happens, you can fix it by uninstalling it.

It works fine in XP otherwise. Midi Yoke is also able to relay sysexes.  

http://www.midiox.com/myoke.htm  

Has very easy to follow pictorial instructions. Installation may seem complex but if you just follow it through step by step, all is explained and there is nothing to go wrong.

Maple Virtual Cable:

http://www.marblesound.com

Their site doesn't seem to have been updated for some time  - but if you go through and download it anyway, their loopback works fine on XP.  

This loopback is also very easy to install, just has an installer like Loopbe1. This one doesn't relay sysexes. However it can add four midi ports to your system. So a good approach for XP is to install loopbe1 to have a port available to relay sysexes, and Maple Virtual Cable to add extra ports to let you play several synths simultaneously from FTS or for other more complex midi relaying requirements. So you can play one synth with sysexes using Loopbe1 and the others using Maple Virtual Cable.

Hubi's loopback

The oldest of them I think.

You can get it here, the latest version, version 2.6:

http://members.magnet.at/hubwin/midi.html

(last updated 1999)

Instructions on how to install it in Windows 95 in the readme - the same procedure works in Windows 98. Basically you use Start | Control Panel | Add Hardware, say that you are installing a hardware device, tell the wizard that your hardware is already connected (as there is nothing to connect), that it is an Audio / Video driver, and that you have the disk, and then browse to find the files you extracted from its zip archive.

It is too old to use in XP - it predates XP. I've given it a go - you can install it as a Sound, video and games controller, and it installs fine, but it doesn't work. You find that it gets listed under Sounds and Audio Devices | Hardware as enabled but not functioning properly and it doesn't show up in the Midi menus at all. No surprise really.

Reducing latency

If the soft synth has high latency, then there is nothing you can do about that in FTS - but you can deal with it probably from within the soft synth or sampler if it lets you vary the Audio settings. Select Direct Sound if available in preference to MME and reduce the buffer size as far as you can before you get clicks / crackles etc. You may well be able to get the latency down to 20 ms or less. Select Asio in preference to Direct Sound if it is available.

Even if you don't have Asio you may well be able to add it using Asio4All:

http://www.asio4all.com/

This works on my Dell laptop with a very ordinary soundcard (I think actually it is just a soundchip). So it should work on most setups I think.

With Asio you may be able to get the latency down 1ms or so. That is so small as to be totally imperceptible for most. It is the time it takes sound to travel one foot.

If you can't use Asio for whatever reason, the 20 ms latency of Direct Sound is also acceptable - all the notes are delayed uniformly so you just play a tiny fraction of a second (a fiftieth of a second) in advance of the note, and one soon gets used to it and you can still play crips chords. But it is perceptible - Asio is noticeably immediate in its response after using Direct Sound.

Testing Latency

It requires hardware modifications to test latency all the way around the system including the audio generating part of the loop. Here is an old Sound on Sound article by Martin Walker which describes how he tested it back in 2002 and his results at the time (his figures will no longer be relevant for more recent hardware or for XP).

http://www.soundonsound.com/sos/Sep02/articles/pcmusician0902.asp

However, you can use software to test the time delays involved in midi relaying, for instance the delays involved in relaying notes through one of the loopbacks, or relaying notes through a loopback then to FTS for retuning and back again. Or indeed you can test your midi or usb midi connections in the same way. FTS includes a loopback timer under Out | Options | Midi Out / Save Timing | Relaying Speed Check.

You can use it for instance to test how much time FTS or Scala adds for midi relaying. Typically the average delay is a small fraction of a millisecond for each event. This really causes jitter rather than latency as it delays notes that originally were simultaneous, just like the delays you get if you try and send two many notes at once through midi cable. So that's more significant than latency and should be kept small - but the figures involved here are small enough to make no significant impact on jitter.

Or you can use this program:

http://earthvegaconnection.com/evc/products/miditest/index.html

which reports the number of events that get around in less than a millisecond, after 2 ms and so on so you can get a good idea of the amount of jitter involved in the midi relaying (which FTS doesn't measure at present).

Recommended by Martin Walker again in his Sound On Sound PCNotes in:

http://www.soundonsound.com/sos/apr04/articles/pcnotes.htm

which also discusses latency at the end.

To make sure you are testing it in fair conditions, reduce your system overhead as much as possible first.

Tips for reducing system overhead

Disable your virus scanner temporarily (so long as you are off-line of course). That's because it may make an impact on performance with its constant monitoring for viruses.

If you use Microsoft Office products like Word, they have a tendency to install a task called Find Fast which keeps track of your office documents to load them faster for Advanced Find and Open in Office programs. However it runs all the time whether you are using any Office product at the time or not. It sits there quietly for a few hours using hardly any of the CPU, but after that, if you leave your system running, it then starts to use up available idle time on its indexing, possibly as much as 50% of it. (Goodness knows why it uses so much CPU power apparently doing nothing much at all). You may want to disable it.

Here is how (Word 97): http://support.microsoft.com/kb/q158705/ or for Word 2000: http://support.microsoft.com/kb/q199787/ - it is basically the same process.

Then, if you are running XP you can look at the CPU levels for all the running processes in the task manager and check that nothing else there that's using a lot of your CPU time as that will naturally slow down the loopback.

Scan regularly for adware and other parasites as those really impact on your system performance. If you don't scan for adware and spyware regularly you should - try Adaware and you may want to try the new microsoft AntiSpyware Beta. Nowadays many computers are infected with these parasites of one type or another, many are relatively harmless but they do hog cpu resources, and some are malware which you definitely don't want. It's one of the three things everyone should do as basic internet security nowadays: make sure you have a firewall (e.g. Zone Alarm or the firewall in XP or both), make sure you have up to date anti virus checking (AVG Anti Virus is free for personal use), and make sure that you scan regularly for adware and spyware. However, adware and spyware is relevant here because many of these programs add themselves to your program start up tasks list and are running permanently all the time, sometimes using up a lot of CPU time to do so or occasionally just bringing your computer to a complete halt for a second or so as they do their so very high priority ( :-)) reporting of statistics or checking for updates - or whatever it is that they do.

If you are really serious about making sure your computer is running nothing at all that will slow down your music programs try the tips here:

http://www.musicxp.net/tuning_tips.php

No need to be diligent about those unless you are really keen, except perhaps the first one. Some of them may only make a negligible or marginal difference, for instance switching off the XP visual effects may not have a very noticeable impact on timing particularly, and you may feel you prefer the new look effects for the tiny impact on performance that they may possibly cause. But if one cares nothing for that sort of thing, and simply wants the very minimum of impact on performance no matter what, one may as well turn them off!

Better instrument quality

Your midi synth may not be very high quality even if it has low latency. But luckily that can also be addressed.

For a General Midi sound set - this is the easiest type for newbies to use - it means that you can e.g. just select a Guitar, Orchestral Harp, Celeste or whatever in the menu in FTS and know that the sound you hear will be that type of instrument. Yamaha used to sell a good GM soft synth but it has now been discontinued as far as I can tell. Roland did one called the Virtual Sound Canvas which is now sold as the Edirol VSC-MP1 Virtual Sound Canvas Multi-pack.

FTS is also able to play the notes on QuickTime if you have it installed. This is free of course, and is comparable to the Roland synth since it uses the same sound set. Unfortunately this option seems to involve a fair amount of jitter (you play notes in time but they get played out of time randomly delayed by small amounts). I'm not sure why that is. To use QuickTime with FTS you need to run QuickTime's stand alone full installer - the one that you download first and then run yourself. Then when it runs, choose the Custom option and say you want to install Quick Time for Java and Quick Time Music. You will then find that FTS adds two Quicktime devices to its Out menu.

When you play a saved midi file in Quick Time then there is no jitter, and one idea is to save your tunes as midi files - or save your recording as a midi file - and then play the result in FTS. There's an option in FTS to show your recording embedded in a web page which can be useful for quickly previewing midi file recordings in Quick Time. That's in Bs | Record to File | Play as Web Page. For instance, you could record your playing, playing crisply in time, and just ignore the jitter but listen to the quick time playback for a rough idea of what the recording will sound like, then play it embedded in a web page to hear the final result. The recorded midi notes will be at the times you actually played them so will be without jitter. Similarly you can preview fractal tunes with jitter (which can be quite fun actually and can sound quite interesting) and then at the end once you have finished tweaking it, save the final result as a midi file and play it in a web page without jitter.

Or, use any software sampler capable of playing the Sound Blaster sf2 type sound font files. For instance, to get started right away, try Virtual Sampler - I suggest that one just because it is easy to use and you get a 30 day trial period, which is plenty of time to decide if this is the right approach for you. There are other programs to get, so if you feel this is more than you want to budget for it, you can find free ones, or if you have specialist needs, you can find others that you pay for that vary in their feature sets for advanced features. But this one is easy to use and set up, supports many file formats, and works straight away so if you want to get started playing music using sound fonts right away just to see what it is like, try this one.

VSampler 3

Then look for one of the large GM sound sets. For instance, the Merlin GM sound font which you can download from MidiContest. Or, Bennet Ng's AnotherGS sound font.

Well the large the font the more it will sound like a "real instrument" probably - you need lots of samples and long samples to closely approximate to the sound of the real instrument. But the smaller sound font banks may also have interesting sounds in their own rights - large doesn't have to mean better, as it depends what you are looking for. You may find a voice in one of the smaller banks which is just the sound you want, or that particularly appeals to you.

The SynthFont site has a good list of freebie sites for soundfonts and gigs. I'd recommend this program as it is easy to use and well featured - except that it doesn't let you play it directly via midi in, so that makes it a bit off topic here. For midi rendering there are quite a few options to consider - for instance you might like to try the free Timidity too.

Giga Studio and streaming Samplers

For the most real sounding instruments then try Giga Studio. Really there is no comparision between a gig and even the larger sound fonts in terms of quality of sound - if what you want is a sound as much like the real instrument as possible. Note that this isn't a GM set. When using a program like Giga for your sounds, then in FTS you would set it to show the instrument numbers rather than names from Voices | Edit Voice Menu. In the case of Giga the instrument numbers depend on the order in which you load the instruments into Giga and you can see those on the loaded instruments tab in Giga - those numbers are what you use to select the Giga Studio instruments in FTS.

If all you want to do is to be able to play gigs, then you can get along fine with the light edition of Giga Studio. If you are lucky you may find a Giga compatible soundcard which includes a free copy of Giga LE bundled with it.

Note that Giga Studio instruments often seem to come pitch locked to twelve equal. But it is an easy thing to unlock it. Open the gig in GigaStudio Editor. Then go to the instrument bank. Right click on each instrument in turn, choose Properties, then set the pitch bend in semitones to 2. It will then be microtonally enabled.

You can only use GigaStudio if your soundcard supports it - nearly all the middle or higher range ones will but a low range one may well not. You may need to play giga instruments in Giga Studio if you want to make use of special Giga features which some of them are programmed with - such as sympathetic strings resonance for sustained note piano sounds. But most can also be played on any soundcard using a third party sound sampler such as Virtual Sampler again - if you downloaded that one then you can try out a few gigs right away.

The quality of some of the Giga instruments that have been developed is rather extraordinary. They use long high fidelity recordings of every note that can be played on the instrument, recorded at many different volume levels. So they require a lot of hard disk space and a hard disk that can stream the data quickly - or lots of memory. But only Gigabyte levels of hard disk space - that's not a problem on a modern p.c. which will also be plenty fast enough to play these instruments. It may struggle on an older computer.

If you hear just a single note you could easily suppose it is the real instrument because in fact that is exactly what it is - a recording of a note played on that instrument (maybe slightly changed in volume and sample rate). The thing is that normally they aren't looped and don't rely on special effects to make them sound palatable but are just ordinary recordings. When you play lots of notes - well every time the same note is played at the same volume and other settings, it is played in the same way but because they vary a bit from note to note, just as notes are when played on the real instrument, you really get quite a feeling of someone playing on the actual instrument itself. Anyway whaever one makes of it, this is at least as close probably as you can get to simulating a real instrument currently using software.

Many gigs cost quite a bit - they involve their makers in a lot of work and expense. In fact this is such a big thing now that companies will hire a concert hall and will hire soloists to work for months recording all the notes for their gigs files in a suitable acoustic. But if you look around you can find free samples to download and try out too.

Giga studio was first in this field but now there are other other file formats of this type too for streaming samplers such as ones especially made for Kontakt by Native Instruments.

Listening to just intonation chords, beat patterns and so forth

Here I am supposing that you want instruments that let you listen to chords clearly. You want ones that are precisely tuned in terms of pitch, and you want to be able to hear the difference for instance between various just intonation and tempered chords using sounds that you can make on your computer, and want to hear the difference as clearly as possible. For instance, perhaps you want to hear how you get beats when you change from a just intonation chord to an equal tempered chord. For this type of thing, you have rather special requirements.

The wave table type synths often have samples with some residual vibrato, just a bit but enough to maybe cause lots of beating when different notes with slightly different vibrato are played simultaneously. The vibrato there is often planned and carefully done to make a realistic sound. This makes a nice sound to listen to, but isn't what we want here - for instance to listen out for beat patterns, its best to have a vibrato and tremulo free sounds.

The sampler formats like the gigs also often have vibrato - this is often the selling point, the wonderfully realistic and warm vibrato of the stringed instruments for instance. However, you may well have a variety of sounds, e.g. a violin played with a lot of vibrato, or played pizzicato, or whatever so you can choose whichever you want for your needs. So you may well find a suitable Gig to use.

If you are using a wave table synth you will probably find that some sounds work better than others for this. You want a rich timbre to listen to the effects of tuning on different chords - it isn't so noticeable in a pure timbre like Ocarina. But you want a steady note with no vibrato or tremulo too, one that sounds interesting. Perhaps also you want one that doesn''t decay away as a plucked sound does. A harpsichod or some such may be good for a plucked sound (piano has inharmonic partials because of the high tension of the strings). Maybe something like the reed organ, depending on your sound set, would be good for a sustained sound. Or possibly one of the GM synth sounds on your midi synth (in the Synth sections of the Voices Menu).

One should be aware that many wave table instruments will have audible looping artefacts -some variation in the sound on the time scale of the wave sample used. If you hear slow beats in a single note played on its own then this is probably what is happening especially if it happens with every note. Or if it happens only with particular notes it could be beating with a pitch in your room or in the sound from your hard drive or some such. So look for an instrument that doesn't have beats in single notes and try to eliminate any background hums if you want to listen to beat patterns and count them and such like.

Anyway you can find suitable instruments in wave table synths, and also in sampler type instruments. But if you want really really precise tuning, use the FM sounds, which may be tuned precisely to e.g. maybe a thousandth of a cent or better, which no human performer could hope to achieve. You want an FM synth or any such synth that generates the notes using pure sine waves or other calculation based methods, rather than on the basis of acoustic recordings.

The FM sounds may also have vibrato too and rhythmic effects and tremulo and so forth, which of course will obscure things here. But if you look around you will find other ones suitable for your purpose here.

FM synths and other synths that generate notes entirely synthetically

You can get a huge range of timbres in these types of synths - ones that emulate various kinds of classical synthesizer for instance, which involves feeding sine waves into other ones following complex feedback loops to make the most amazing variety of new and unusual sounds. They can also emulate real instruments such as voilins, oboe, bells etc, though this isn't their strong point. At least, their strong point isn't to exactly emulate real instruments.

For those who are new to FM synths, those instruments sound like e.g. bells, but always there is something just a bit unusual about the bell sound, so what they are good at is making new and original bell like sounds say, or sounds that are hard to classify sometimes as anything you recognise at all (the sort of thing you might hear in a sci fi sound track for instance). FM sounds are very widely used in music nowadays - pick up a magazine like Sound on Sound, and you will find an extensive descriptions of the qualities of various FM synths classical, new, hardware or software etc.

Or try CSound. With the next release of FTS it will be very easy to use CSound instruments with FTS, and I will include some CSound instruments particularly designed to be good for listening to just intonation chords.

I'm also going to develop a way to be able to play sounds directly within FTS itself using an audio engine to play repeating single waves - any mathematically completely pure harmonic series timbre is equivalent to a single repeating wave of some shape or another so the idea is to explore the purest possible harmonic timbres by playing any desired shape of single repeating wave to the highest possible ptich accuracy. More on that when ready.

You can also use FTS to make short audio clips of chords to hear what they sound like using these pure sounds - this is already programmed and will be in the next release (3.0).