You are here

Improving PC Performance For Music

Tips & Tricks By Martin Walker
Published February 2000

One of the keys to lowering latency with MME drivers is to tweak the size and number of buffers. You can do this inside most audio sequencers (this screenshot shows Cubase VST), but it is important to run tests to ensure that the lower values give reliable results.One of the keys to lowering latency with MME drivers is to tweak the size and number of buffers. You can do this inside most audio sequencers (this screenshot shows Cubase VST), but it is important to run tests to ensure that the lower values give reliable results.

It's all very well grumbling about some musical aspect of your PC's performance, but unless you know the cause of the problem you may have little idea what needs to be done to improve matters. Martin Walker points you in the right direction.

I receive lots of emails from readers whose PC setup is frustrating them in one particular respect — perhaps by not giving them enough simultaneous audio tracks, or suffering from graphic glitches. In these cases, the problem is often down to one specific feature of someone's setup, and can be resolved by addressing this feature. But how do you know what the limiting factor in your current setup is? The object of this month's PC Musician is to help you find out. Whatever the specification of your PC, it will help a great deal if you understand a little more about what functions consume what resources, so that if you want to upgrade it for a specific reason you know where to start.

Lowering Latency

For Cubase users, increasing the System Preroll setting is still the simplest way to sort out many problems with MIDI timing.For Cubase users, increasing the System Preroll setting is still the simplest way to sort out many problems with MIDI timing.

Latency has been discussed many times before in the pages of SOS, notably in 'Mind The Gap' in the April '99 issue. There are now two main areas where latency can be a problem. Very important for anyone recording vocals or acoustic instruments is the 'Audio to Audio' latency — the gap between an input signal's entering the computer, and its emerging again to be monitored — since it's almost impossible to perform if what you hear in your monitors is delayed by more than about 10mS. However, in the last year or so another type of latency has become just as important: the 'MIDI to Audio' delay between the input of MIDI data produced by playing a keyboard or other controller, and hearing the output of a software synth or sampler.

In both cases the actual latency value is set by several factors. The most significant one is the combination of soundcard and soundcard driver software, with smaller contributions from the operating system and audio software. With typical 'Audio to Audio' latency values now ranging between 750mS (with old Soundblaster cards using MME drivers) and 3mS (for new designs using ASIO drivers, like the RME DIGI 9652 Hammerfall, reviewed in the September '99 SOS), making the right soundcard choice is critical if you want to monitor your audio recordings in real time, or have the output of a software synth play in sync with your keyboard performance. The magic figure for latency of either kind is about 10mS: below this, most musicians will feel that what they are hearing is in real time, rather than slightly behind.

To achieve Audio to Audio latency values of this order, you will nearly always need ASIO drivers (for use in Cubase VST or Logic Audio), and a soundcard with hardware design and software drivers that can manage these low values. The RME Hammerfall, for instance, managed 6mS with my (then) Pentium II 300MHz system, and can manage 3mS with a Pentium III. Another potential limitation is your sequencer: although VST could manage these settings, Logic Audio 4.0 can't use buffer settings below 1024 bytes, which gives a latency of 23mS.

MIDI to Audio latencies with software synths and samplers can be just as problematic, and once again the lowest latency values achievable depend on how well the soundcard drivers have been written. However, it is easier to achieve values like 10mS, even with MME drivers, because this type of software uses much smaller buffers when generating waveforms, and is only dealing with the delay between a MIDI signal and audio output, rather than audio input and then output.

In general, ASIO drivers will still give best performance if they are available (as with Bitheadz' Unity DS1 and Software Technologies VAZ Modular), and DirectSound drivers will generally perform better than MME ones. Some software, like Nemesys' GigaSampler, can only use real (and not emulated) DirectSound drivers, so your choice of soundcard may once again be dictated by the type of driver support available.

Selecting And Tweaking Soundcard Drivers

If you are running a soft synth and can reduce its sample rate, this can release enough processor power to run more notes (or more plug‑ins elsewhere). Some models (like the Native Instruments' Reaktor shown here) have an option for 32kHz, which will still give a 16kHz bandwidth.If you are running a soft synth and can reduce its sample rate, this can release enough processor power to run more notes (or more plug‑ins elsewhere). Some models (like the Native Instruments' Reaktor shown here) have an option for 32kHz, which will still give a 16kHz bandwidth.

Soundcards may be supplied with any combination of ASIO, DirectSound, and MME drivers. Some 'high‑end' soundcards are initially only shipped with 'professional' ASIO drivers; though this will give optimum latency within Cubase or Logic, it means that the only software synths and samplers that can be run are either those that support ASIO, or those that can run inside Cubase VST as VST Instruments (of which there are very few at the moment).

With most ASIO drivers (though not all — exceptions include the drivers for Yamaha's SW1000XG), and with all MME and DirectSound ones, you can tweak the buffer size inside your sequencer to achieve the optimum setting for your particular PC system. A smaller buffer size will automatically give you a lower latency, but eventually you will start to get audio glitching. The lowest latency value for your particular system is thus achieved by using the smallest buffer size that runs without glitching.

Sadly, even if your soundcard has ASIO drivers, you can't use them if you want to use more than one soundcard inside Cubase — the only solution is to change to MME or DirectSound ones. Many software synths and samplers can also only use MME or DirectSound drivers, so relying on ASIO drivers isn't the whole answer to reducing latency. You can't solely judge a soundcard by its current performance either, since a new driver release may introduce support for DirectSound or ASIO and suddenly improve performance in leaps and bounds. For instance, there are rumours of ASIO drivers being made available for the Soundblaster Live! range in the first few months of 2000, which will hopefully improve its performance.

The important thing is that whether you are using MME, DirectSound, or ASIO drivers, you make sure that you have tweaked your soundcard buffers to their lowest reliable number and size inside each relevant software application. You may have to adjust the buffer size in kilobytes, or change the value of latency directly, depending on the application. If you have a choice of driver types, make sure that you try each one, as each one is likely to get different performance. Don't assume that DirectSound will be better than MME — this depends on how well the drivers have been optimised in each case, but remember that currently you can only play back with DS drivers, and not record with them. Finally, if you are lucky enough to have more than one soundcard, find out which one works best in each application.

With my SW1000XG I can lower the default 557mS MME audio latency down to 186mS by altering the settings inside Cubase to three buffers each of 2048 bytes. When using its Beta DirectSound drivers in VST, the default value of 204mS can go as low as 170mS in my PC before glitching occurs. By comparison, the fixed ASIO value of 106mS is not that great!

Another example is my Echo Gina: with the latest version 5.02.0 drivers I can now manage the smallest ASIO buffer size of 128 samples, giving a much lower audio latency of 4mS at a sample rate of 44.1kHz. However, these latest drivers also run very well with VST on my PC with three MME buffers of 1024 bytes, giving an audio latency of 93mS — this is lower than the ASIO drivers for the SW1000XG! Kevin Perry also found in his review of Cakewalk Pro Audio 9 (December '99) that using its WavePipe acceleration he could achieve a 43mS MME latency with a Sonorus StudI/O card: when I reviewed this card in the September '98 SOS the ASIO drivers could achieve a 32mS latency with a fast PC.

This all goes to prove that even with MME drivers, excellent Audio to Audio latency results are possible, but only if they are well written for optimum performance. Echo and Sonorus are two developers who have carefully coded their MME drivers for musicians, and the results speak for themselves.

Improving MIDI Timing

The DskBench utility shows that with a block size of 64kb, my 5400rpm Fujitsu EIDE drive can manage 39 simultaneous tracks of 16‑bit/44.1kHz audio, and that with less than 1 percent CPU overhead, the DMA Bus Master drivers are working correctly.The DskBench utility shows that with a block size of 64kb, my 5400rpm Fujitsu EIDE drive can manage 39 simultaneous tracks of 16‑bit/44.1kHz audio, and that with less than 1 percent CPU overhead, the DMA Bus Master drivers are working correctly.

During development for the major update to Cubase version 3.6, Steinberg carried out extensive tests into the MIDI timing problems exhibited by some PCs. They discovered that the same machines similar problems with other makes of sequencer, and that the problems seemed largely due to poorly written soundcard drivers. Poor timing on these cards was always worse when audio was being run alongside MIDI, which is hardly surprising when you consider the extra load involved. The second major cause was poorly designed MIDI ports that transmitted MIDI data reliably only when audio wasn't being used. This sort of inter‑related problem is a nightmare to fault‑find, since results vary depending on what else your sequencer is attempting to do at the same time.

However, this just seems to prove once again that if you want professional performance you need a professional soundcard, and not one designed primarily for games. I'm not knocking consumer soundcards for the sake of it, just pointing out that a low‑cost card that provides digital recording, a built‑in sampler, DSP effects, MIDI interface, and joystick control does not have the same design criteria as one intended for professional musicians. Older consumer cards (especially ISA ones) also need a multiplicity of system resources, and therefore can sometimes be a nightmare to install in the first place, and just as tricky to work round whenever you install more hardware at a later date.

Specifically, the AWE64 and AWE64 Gold have a 'hardware speed conflict' with certain MIDI controllers, including the Roland A30, Roland PC200 and Yamaha G10. For those with even older models such as the Soundblaster 16, or some anonymous card that came with your 486 machine some years ago, the simple advice must be — replace it! If you can afford to buy a decent sequencer then you should splash out on a new soundcard as well. You'll never regret it, and even the current SB Live! range has proved far easier for most people to install and use than its predecessors. Even if you find an old soundcard fine for general MIDI and audio recording and playback, it may still cause problems when asked to transfer SysEx dumps to external synths, since this is one of the most taxing tasks. You may also run into problems if you are sending huge amounts of MIDI controller data, such as filter sweeps.

However, if you already have erratic MIDI timing, what else can you do about it? Well, this is a big topic — so much so that an entire SOS article is planned for the near future — but here are some brief tips. This problem seems to happen often enough that each and every sequencer developer (and often MIDI‑interface manufacturers as well) will have specific suggestions to make, so your first port of call should be the manufacturer's web site (or if you don't have Internet access, a phone call to your local distributor). If your MIDI interface is using a parallel port then check that you are using the recommended Parallel Port Mode (set in your BIOS: I have written extensive FAQs on this in the https://web.archive.org/web/2015..." target="_top forum). Finally, in the case of Steinberg's Cubase range, do make sure that your system pre‑roll setting is as least as big as your audio latency setting (some users find MIDI timing benefits in increasing it still further). In many cases this has completely cured problems with SB Live! cards.

Running More Real‑Time Effects

Most PC Musicians think of real‑time effects as those running in software, in the form of plug‑ins. The number of these you can run simultaneously depends solely on the amount of processor power available: if you want to run more effects than you can currently manage then you need to upgrade your processor.

It is extremely important if you are using EIDE drives that your drive, motherboard, and operating system are capable of Bus Mastering DMA. Without it your transfer rates may be rather lower, and more importantly they will consume a significant proportion of your processor power while moving the data either to or from the drive. With Bus Master DMA activated, processor overhead for disk transfer is normally just a few percent, allowing many more real‑time plug‑ins to be run at the same time. In general, most drives bought within the last couple of years have support: I have written extensive FAQs on Bus Master DMA in the PC Hardware section of my PC Music: Frequently Asked Questions conference on the https://web.archive.org/web/2015..." target="_top forum. These explain how to check whether or not your system is already using BM DMA, how to enable it if not, and how to specifically check if your drives support it.

With typical latency values now ranging between 750mS and 3mS, making the right soundcard choice is critical if you want to monitor your audio recordings in real time, or have the output of a software synth play in sync with your keyboard performance.

There are two other ways to add real‑time effects without using your main CPU: external and internal DSP power. If you have a multi‑output soundcard, you can use some of its outputs as effect sends to external rackmount units, and then add the output from these back into the overall mix either using some spare channels of a hardware mixer, or some spare soundcard inputs as effect returns. An easier option, however, is to buy a soundcard with built‑in DSP effects: these range from the low‑cost SB Live! to the powerful Lexicon Studio system. By routing audio tracks through these onboard effects you can save your main processor power for other things.

Remember also that software samplers use a considerable amount of processing power, and if you instead use a soundcard with SoundFont support (such as the SoundBlaster range and the Emu APS) you will have a lot more processing power left for your effects. As a last resort, don't forget that reducing the sample rate of your MIDI + Audio sequencer will drop the effect processor consumption by a similar proportion. For instance, changing your sample rate from 44.1kHz to 32kHz will still leave you with a bandwidth of 16kHz — more than adequate for much material — and effectively give you 38 percent more processing power. You can still export the final mixdown file at 44.1kHz if you intend to master to CD‑R.

Getting More Notes From A Soft Synth

Running two applications simultaneously creates all manner of potential clashes, and only those with powerful PCs will have much success in this area. I covered this whole subject in some depth in 'Softly Softly' in SOS October '99, and won't go over the same ground again here. Suffice to say that you can use note counting in your sequencer editor, or adjust the note and processor capping settings inside the software synth. However, the quickest and easiest solution is, again, to lower the synth sampling rate. This will give you a considerable drop in processor overhead, but less obvious drop in sound quality than lowering the sample rate for all your audio recording in the sequencer. Sadly, not all soft synths have a global option for sample rate, and not all that do offer 32kHz. Nevertheless, 22kHz or even 11kHz may give usable results.

This approach can run into difficulties using a multi‑output soundcard with both a MIDI+Audio sequencer and a soft synth, however, since some of these insist that every one of their output channel pairs operates at the same sample rate. If you try to run a soft‑synth at 32kHz, and your sequencer files are 44.1kHz, you may get an error message, or find that one or other application forces your sounds to the wrong pitch. If this happens, the only cure is to reset the sample rate to the same value in each and every package.

Increasing Audio Track Count

This is the biggest subject of all, and also the source of most confusion. First of all let me confirm that buying a new soundcard is unlikely to let your PC manage any more audio tracks. However, installing more RAM might, upgrading to a faster processor could well, and buying a faster disk drive certainly will.

Before explaining in detail what you need to get the maximum simultaneous track count from your existing machine, it's important to understand that the digital audio format you choose has a huge bearing on track count. If, for instance, your system is capable of 48 tracks of 16‑bit/44.1kHz audio, you're likely to get only 32 tracks at 24‑bit/44.1kHz, simply because this format uses 50 percent more data for each track minute. Correspondingly, such a system will only get 16 tracks at 24‑bit/96kHz: if you intend to work at this bit‑depth and resolution, you will almost undoubtedly need a fast SCSI‑based system to manage more than a few tracks.

Fundamentally, the number of possible digital audio tracks is determined by how fast you can get them on and off the hard drive, which is determined by the drive's sustained transfer rate. I covered this subject in some detail in 'Easy Access' in the December '98 issue. The sustained transfer rate of a drive is largely determined by its speed of rotation, so in general 7200rpm UDMA drives will perform better than 5400rpm UDMA ones, and 10,000rpm SCSI drives will outperform them both.

Another major factor in achieving the desired number of simultaneous tracks is the Block Size, the amount of data that is read from the drive by the sequencer for each audio track and stored in a RAM buffer, before the hard drive moves on to the next one. If a small Block Size (such as 16kb or less) is used then the head will spend a lot of the time jumping to different parts of the drive, whereas a larger value (somewhere between 32kb and 128kb) will ensure that your drive manages more tracks.

One extremely useful utility that will measure any disk drive in exactly the right way to test its performance with hard‑disk recording software is DSKBENCH.EXE, which you can download from www.SESA.es (follow the Downloads link on the main page). DskBench also measures the CPU overhead during disk transfers (confirming whether Bus Master DMA is active), and gives you a useful indication of how many simultaneous playback tracks your drive will manage with different Block Sizes. You can then use an appropriate setting in your sequencer. As a guide, 16 tracks with a Block Size setting of 64kb will consume 1Mb of your RAM, while 48 tracks needing 128kb would need 6Mb. If you really do want masses of audio tracks you might have to go to the length of setting a 256kb buffer size which, with 64 tracks, would immediately consume 16Mb of system RAM — a good reason to upgrade if you only have 64Mb in total!

A significant factor is that the sustained transfer rate is always much faster on the outer edges of any drive, and slower on the inner ones. For this reason a nearly empty drive will always manage significantly more simultaneous audio tracks than one that that is nearly full. This is the main reason for having a second drive solely for storing audio data, although having two also makes it far easier to defragment just audio data on a regular basis to optimise performance of the drive. If you only have a single drive, you can split it into several partitions (either by reformatting it and re‑installing your software from scratch, or on the fly using a utility like Partition Magic). Unfortunately the Windows operating system normally boots from the outermost partition (labelled C:), but you can work round this by creating three partitions labelled C:, D:, and E:. Make the C: partition quite small (10Mb should be sufficient), then install Windows on partition E:, and use D: for your audio data. Windows will then install a few files on the tiny C: partition, just sufficient to let it carry on booting from the E: partition. Partition Magic will help you do this.

The final part of the track‑count equation is setting up the operating system for hard‑disk audio recording. Often, the reason people with fast drives and powerful PCs manage only a few simultaneous audio tracks is that one component (such as a graphics card) periodically grabs more than its fair share of the PCI buss. With this sort of problem removed you may suddenly get significantly more audio tracks without upgrading anything else. Once again I have already covered the relevant tweaks in some detail (see 'Beat The System' in SOS January '99). Although there are quite a few tweaks to try out, it will be well worth taking the time to do this, as your ultimate track count may be significantly improved in the process.

Summary

For those of you considering buying a new PC specifically for music, the safest solution is to buy a complete system from a specialist music retailer. If you know exactly what you need in musical terms (32 audio tracks at 24‑bit/44.1kHz, eight ins and outs, 10mS latency, built‑in DSP effects, and so on), and what software applications you want to use, you can leave it to the experts to put together the hardware that will do exactly what you need. This avoids getting any nasty surprises, or spending hour upon hour trying to sort out obscure conflicts buried deep in the bowels of the motherboard.

However, if you are looking to improve a specific aspect of your current PC's musical performance, it will certainly pay you to make sure the entire system is properly optimised before reaching for your credit card. Even if money does have to change hands, now that you can pinpoint the likely cause of the limitation it will save you making some expensive mistakes. Let's hope so!

Bypassing Latency Problems

If you are still frustrated by the lowest 'Audio to Audio' latency possible with your current system, there are several possible ways to bypass the problem altogether. First, you could monitor through an external hardware mixer, using external rackmounting effects if necessary, while still recording a clean signal onto hard disk. Alternatively, many soundcards now have 'zero'‑latency monitoring options that bypass the software altogether, so that you can hear the audio input signal being recorded within a couple of milliseconds (though you will lose the ability to add monitor effects like reverb unless you can patch in external rack effects). A third solution is to buy a soundcard with built‑in DSP effects (like the SB Live!, Lexicon Studio, Yamaha SW1000XG and DSP Factory), and use these when monitoring, so that the recording doesn't need to pass through any software before being heard.

While we are on this subject, don't forget that some software plug‑ins have latency as well, particularly those that rely on reading ahead in the data to prevent unwanted peaks. Wavelab 3.0 shows the latency value of each plug‑in installed in its Effect Slots, and a quick trawl through my VST‑specific plug‑in collection showed that nearly all effects had 0mS latency, apart from Noise Gate and Peak Master (both with 125mS), and the VST Dynamics section (at 27mS). Cubase VST now has a click box for Plug‑in Delay Compensation that takes care of these automatically.

Drive Speeds

Many people buy really fast hard drives, but still don't get the track count they are hoping for. Others manage to get 32 tracks from an old drive that they've had for donkey's years. So what can you really expect from different sorts of drive?

Well, at 44.1kHz, a 16‑bit audio file uses 88200 bytes per second, so 16 tracks would take 1,411,200 bytes per second, or 1.34Mb/second. I measured an old 1Gb Quantum Fireball drive (TM 1.0AT) with a rotational speed of just 4500rpm (very slow by today's standards), and an average seek time of 12mS (most modern drives have figures of around 10mS). DskBench measured a sustained transfer rate of 3.8Mb/second, and a possible 17 tracks of 16‑bit/44.1kHz with 32kb block size, 22 with 64kb block size, and 30 with 128kb block size. With a more modern EIDE drive such as my Fujitsu 5400rpm I can manage 39 tracks with a 64kb block size, and 54 with 128kb block size (see screenshot). This rather proves that nearly all EIDE drives should be able to manage 32 tracks fairly easily if the system is setup properly.

If you want 24/96 capability then these track counts should be divided by three, so that the fastest EIDE drives might manage 20 or so tracks with 128kb block size. When you move to a 10,000rpm SCSI drive this should increase to more like 24 tracks with 64kb block size, and 36 tracks with a 128kb block size.