[HOWTO] Setup and configure your Windows PC for real-time audio

[HOWTO] Setup and configure your Windows PC for real-time audio

#1
This article is a work in progress listing OS and application configuration changes and tweaks to improve real-time audio performance on Windows machines. It can also be used as a troubleshooting guide if you experience audio dropouts, glitches, stutter, silences, zipper noise, etc.


Disclaimer: this article contains links to 3rd-party software and websites, as well as low level configuration instructions. Always backup your important data before attempting any of the advanced tweaks listed below, and refer to your hardware vendor and/or 3rd-party software manuals.


Prerequisite: this article assumes that your computer is free of viruses and other malwares. If your computer is infected, you should clean it up first before attempting any point listed below. Run a full system scan if needed.


These guidelines are categorized by their importance level. "REQUIRED" guidelines should always be implemented, in all cases. "RECOMMENDED" guidelines are in most cases useful but if there is no improvement when implementing them, you may revert the changes. "OPTIONAL" guidelines usually don't apply to all systems or are just additionnal tweaks to further increase your real-time audio performance.



Operating system and drivers

[REQUIRED] Update your BIOS

The lowest level code (the one closest to the machine, even below the operating system) is called the BIOS. It resides in a small chip on your computer mother board and it's the program you can see running briefly on the screen when you power the machine on.


This piece of code is critical and should always be up-to-date as new versions contain important ultra low level bug and compatibility fixes. Unfortunately this updating process is something you have to do yourself.


If you bought a brand name PC, refer to your vendor website. If you built your PC, refer to your motherboard website. Get the latest BIOS version as well as BIOS flashing utilities and follow carefully the procedures. Beware that if you fail at this step, you might possibly destroy your computer (without a valid BIOS it won't boot)


[RECOMMENDED] Disable spread spectrum in your BIOS

Spread spectrum is a technology used by motherboards manufacturers to reduce EMF emissions. This is accomplished by modulating the system bus clock, which in turn modulates the CPU speed.


This source of modulation can cause timing jitter in the entire system, and even if it might be very subtle it is recommended to disable this option in your BIOS when possible. Please refer to your BIOS or motherboard manual for further instructions.


[REQUIRED] Update your operating system via Windows Update

Use Windows Update and ensure you got the latest service pack for your OS, as well as all critical updates installed. These updates cover more than security and many fixes and improvements are regularily released by Microsoft.


Windows Update can be accessed on demand via the Start Menu.



[REQUIRED] Always install the latest drivers for all your peripherals, including non audio-related devices

Don't assume you just need an up-to-date soundcard driver, any component in your machine can interact with real-time audio. Also don't rely on the generic drivers provided by Windows when your vendor provides specific and possibly more up-to-date drivers.


Video card and network interface drivers are especially sensitive points and are often of concern. If your machine came pre-assembled, it surely shipped with some kind of factory updating system which you should use to keep it up to date.


If you don't have any automatic system, you will have to download drivers for each perpipheral/device separately, directly from their manufacturers website. Please refer to your product(s) documentation for the proper procedure.



[REQUIRED] Always install the latest firmware for all your external peripherals, if applicable

Some devices come with external setboxes (ex: I/O racks) which contain some DSP code. This code should always be updated, exactly like your BIOS (you may imagine the firmware is the BIOS of your external gear if that helps)


Refer to your vendor manual and/or website for proper firmware updating instructions.



[RECOMMENDED] Disable power saving options and set power plan to "high performance"

While this is not very eco-friendly, you must try to minimize or disable the power saving options in Windows, especially on mobile systems which have them enabled by default. On desktop systems they can be safely disabled altogether.


Many mechanisms exist to save power on a computer, most involve throttling bus speeds and switching current consumption levels. They work pretty well but each switch might cause a delay and interact with real-time audio. For instance accessing samples on a hard drive that stopped spinning will incur a high penalty, and some power saving utilities produce large DPC spikes.


The goal is to have the CPU, motherboard and peripherals run at maximum speed and power at all times, and most importantly, to have them run at a constant speed. To change the power profile settings, open the "Power Options" control panel in Windows and select the "high performance" power plan. Then edit the plan settings and make sure all options are set to "never".


Beware that on some laptops, manufacturers install their own power management tools that can override any setting you do in the Windows power options. In this case you must disable these tools if they don't offer appropriate configuration options.



[OPTIONAL] Disable unused Windows system services

By default, Windows comes with a large number of services pre-installed, just in case you might need them at some time. Every service consumes some resources, even if it's not actively working.


Most of the time these services don't cause any problem, but power users trying to get the maximum performance out of their system might want to disable unused Windows services. Beware that you can't disable services randomly, many are vital to the operating system.


Windows XP users are invited to read this guide.

Windows Vista users are invited to read this guide.

Windows Seven users are invited to read this guide.

There is also a very handy free 3rd-party tool called "Game Booster" which can shutdown most unwanted services with just one click, and more importantly revert them back to normal when you are done playing. This utility is absolutely not reserved to games and can be used in the case of a real-time audio application as well. It can be downloaded here.



[RECOMMENDED] Disable system sounds

This step is not mandatory, but you will feel very sorry if your stage performance is interrupted by a system notification sound while playing in front of the audience!


Also, each time a system sound is played, the soundcard is sollicited and it might affect real-time audio (note: this tend to be less of a problem these days with modern drivers which handle multi clients better than in the past)


To disable system sounds, go to the "Sound and Audio Devices" Windows control panel, and in the "Sounds" tab select the "no sound" model.



[RECOMMENDED] Disable the screen saver

On old machines the screen saver could sometimes interact with real-time audio and had to be disabled to prevent that to happen.


Nowadays there should be no problem at all but we nonetheless recommend to disable the screen saver because it's very annoying when you have the hands on your instrument or your MIDI controller and suddenly the screen goes black because the mouse was left untouched for a while!


To disable the screen saver, open the "Graphical Options" Windows control panel.


[OPTIONAL] Disable media insertion notifications

Your system periodically polls your removable drives for media insertion, on some rare and generally old systems, this can interact with real-time audio.


Also a popup window is usually displayed and this can be distracting when performing on stage (for instance after inserting a USB key to load extra samples, etc)


For detailed steps to disable this feature, read this page.



[OPTIONAL] Disable or decrease visual effects (eye candy)

Decreasing Windows visual effects can reclaim some CPU cycles, and some power users even completely disable the Aero desktop on Vista / Seven. Note however that thanks to hardware acceleration, a lot of the workload is offloaded to the GPU, and GUI refreshing is rarely the bottleneck you will encounter. Furthermore our products automatically minimize the impact of Aero on real-time audio, it should be safe to let it enabled.


To disable visual effects and/or the Aero mode, open the "Graphical Options" windows control panel. For a step by step guide to disable Aero read this page.



[RECOMMENDED] Set scheduler priority to "background services"

This setting is recommended, it instructs the Windows scheduler to prioritize background processes, and this will help your soundcard driver, and by extension, the music application too.


Under Windows 2k/XP, right click on "My computer" then select "properties". Select the "advanced" tab in the dialog and in the "Performances" box, click on the "Parameters" button. A second dialog should popup. Again select the "advanced" tab and in the "Applications performance" box, select the "Background process" radio button.


Under Windows Vista/Seven, right click on "My computer" then selct "properties". Select "Advanced system parameters" and the "System properties" dialog should popup. Select the "advanced system parameters" tab and in the "Performances" box click the "Parameters" button. A second dialog will popup, select the "Advanced" tab and in the "Applications performance" box, select the "Background process" radio button.


On some rare systems the default setting will work better than the recommended one. In this case, just revert to the original.



[OPTIONAL] Set swap file to a fixed size

The swap file is linked to the virtual memory on your computer. It's a key part of modern operating systems. Its operation is usually completely transparent but there are some (rarely occurring) cases where it can interact with real-time audio: when the swap file size has to be changed, a dropout can possibly occur.


A way to prevent this from happening is to force the swap file to be of a fixed size, but you must be very cautious when determining that size or your system might run out of virtual memory. On modern systems with plenty of RAM, the swap is less sollicited and this tweak should rarely be necessary.


For directions to set the swap file size read this article. Basically, the option is located on the same page as the "background processes" option.



[RECOMMENDED] Enable DMA on all IDE channels

If you use IDE drives and you plan to load samples and / or stream tracks from disk, while possibly recording at the same time, you might want to enable DMA access for your IDE channels, this will reduce the CPU load during disk access, as the IDE channel will be able to access the RAM directly without the help from the CPU.


Windows 2k/XP users are invited to read this guide .


Windows Vista/Seven users are invited to read this guide.



[RECOMMENDED] Properly configure your video card driver performance

Some video card drivers have high performance modes or overclocking options in their control panel applets. Those are good for video games but sometimes the performance boost can impact the rest of the system. Video will be prioritized to the detriment of other system parts, and possibly audio.


Another issue with modern video card concerns their power throttling mechanisms. When power is dynamically changed, real-time audio can be impacted.


There is no single way to fix these problems as it depends on your video card model, driver version and configuration options. Refer to your video card documentation. Nvidia users might want to use the "Rivatuner" utility to force their clock rate to a constant rate.



[REQUIRED] Check for DPC spikes indicating problematic device drivers or conflicts and resolve the problem(s)

If the audio output has intermittent glitches or crackles but the CPU load seems to be low, you must check your DPC latencies to see if there is any problem. Even if your real-time audio is fine, we recommend that you check your DPC latencies anyway to root any possible problem out.


If you have DPC latency issues, it means one (or more) of your device drivers introduces delays that interfere with real-time audio. Some drivers are faulty, others are just poorly coded, whatever the cause you must detect the problematic ones.


There is an excellent free 3rd-party tool called "DPC Latency Checker" and an explanation of the problem available on this page. Read the page, download the tool and execute it while the audio is running.


If your system is subject to this problem (indicated by yellow or red stripes when using the latency checker tool), first make sure you got the latest version of all your drivers (video, audio, network, usb controllers, any peripheral, etc) If the problem persists, you'll probably have to disable the faulty devices, at least when performing music.


To determine which devices are faulty without blind guessing you'll need a second free tool called "LatencyMon" and available here (note: this tool doesn't run under Windows 2k/XP) Run the tool alongside the audio application and mark all drivers which have a value superior to 1 in the "highest execution (ms)" column.



[OPTIONAL] Check for eventual IRQ sharing issues or conflicts

Note: the following applies only to non-ACPI computers, please refer to this article: KB314058


Hopefully the previous steps should have fixed all your issues. If not, there is another trail to follow but it's very involved and unfortunately it's quite hard to fix without reinstalling the whole operating system. If you built your PC yourself, chances are you will need to look into this issue.


Basically and without entering too much into details, IRQs are low level system resources used by your hardware devices that are very limited in number. IRQs can be shared between multiple devices and this can lead to conflicts, especially when one of these devices is your soundcard.


IRQ conflicts are hard to identify as Windows sometimes fails to detect them properly. Identify the IRQ assigned to your soundcard and check all other devices to see which ones share the same IRQ number.


If you manage to find a conflicting device, you might try to change either this device or your soundcard IRQ number, but this is sometimes not a trivial task, especially on ACPI systems where Windows will prohibit manual changes.


Changing the physical expansion slot on your motherboard where your PCI soundcard is plugged in will usually solve the problem, provided of course you are using a PCI card. For USB soundcards try plugging into another USB port.



[RECOMMENDED] If using a PCI soundcard, set the PCI latency and properly configure the busmasters

If moving your mouse, opening menus or dragging windows around interacts with real-time audio (ex: zipper noise) experience shows that it's most of the time due to an interaction between your soundcard and the video card.


Solving this issue usually revolves around setting the PCI latency in the BIOS or in the video card driver and/or disabling PCI busmastering on the video card. Unfortunately there is no simple way to do that, and the exact terminology might even vary on your system.


Basically, these settings are often hidden, but each device on the PCI bus has a PCI latency value ranging from zero to 255. Devices with high latency value will hogg the PCI bus for longer times, possibly starving your soundcard. You might either lower the PCI latency value of your video card (or your network card if the problem comes from there) or you might increase the PCI latency of your soundcard.


There is a free 3rd-party tool called "PCI Latency Tool" available here. It can be used to list the PCI latency value for all devices on your system and override these values.



[RECOMMENDED] If using a USB soundcard, disable power management for USB hubs

This power saving feature is enabled by default but some soundcards have problems with it. To disable power management, go to the device manager (Control Panel -> System -> Hardware) open the "Universal Serial Bus Controllers" tree branch, and right-click on the first "USB Root Hub" item to display its properties.


On the dialog that popups, select the "Power Management" tab and uncheck the "Allow the computer to turn off this device to save power" box. Repeat this operation for all USB hubs (unless you know precisely on which hub your soundcard is plugged and always plug the card to the same USB port) Reboot when done.



[RECOMMENDED] If using MIDI over ethernet or another real-time network protocol under Vista or Seven, reduce your network latency

The default TCP settings in Windows Vista and Seven increase the latency of real-time protocols. Online video games players are well aware of this problem, but if you use any kind of low latency network protocol, like MIDI over RTP, you might want to apply this fix.


You need to change two registry keys as explained in this guide.


[OPTIONAL] Under Windows XP Pro 32 bits with 4GB of RAM enable 4GT

If you use a 32 bit version of Windows with 4GB of installed RAM you may increase the amount of memory available to applications by enabling the 4-GB Tuning technology (4GT)


Please refer to this MSDN article : 4 Gibabyte Tuning


Applications

[RECOMMENDED] Disable resource intensive applications not needed when playing music live

Please quit all applications you don't need when playing live on stage. This includes, but is not limited to, antivirus and firewalls/security packages, filesharing and peer to peer applications, all network or disk intensive applications.



[RECOMMENDED] Use ASIO if available

If you soundcard comes with a native ASIO driver, use this mode inside the application. It should have been selected by default but if it's not the case, go to the "Audio devices" configuration tab in Rack Performer and select for driver type "ASIO 2.0".


If your soundcard doesn't have any ASIO driver, you may still use the 3rd-party generic "ASIO4All" driver. However performances won't be as good as with a native ASIO driver. ASIO4All can be freely downloaded from this page.



[RECOMMENDED] Ensure the application is the only one to access the audio device if not using ASIO

When using MME or DirectSound drivers, the first application to access the soundcard will be able to set the audio format (sampling rate and bitdepth) and all other applications will then have to use that format. If they don't, Windows will automatically resample their audio so that it matches the original format.


This resampling process is performed by the kernel mixer (KMixer) and adds extra latency as well as lowering the overall audio quality. This should be avoided at all costs. This is why you have to ensure the application is the first to access the soundcard and make sure the audio format is really effective (users with external I/O boxes often have a sampling rate LED to display the currently active format, check that it matches the one selected inside the application)


Beware that some tabs in your web browser might contain video or audio players that access or keep the audio driver opened and prevent the application from setting the correct audio format. Try to close as many applications as possible.



[RECOMMENDED] Use the native audio card format if applicable

Some soundcards have a prefered sampling rate called their native rate (while others are completely rate independant) and some even always resample to their native rate under the hood, impacting latency and audio quality.


Refer to your soundcard documentation to know if there is a preferred audio format (sampling rate and bitdepth) and select that format inside the application.



[OPTIONAL] Increase application process and DSP thread priorities + run as admin

In the "Advanced" configuration tab inside Rack Performer, you can increase the process and DSP thread priorities. This will help when trying to get really low latencies.


Please note however that under Windows Vista and later versions, you must run the process with admin rights in order to set the process priority to "real-time". This can be easily done by right-clicking on the application icon, selecting "properties" then in the "compatibility" tab, checking the "run the program as an administrator" box.


[OPTIONAL] If you get timing issues ensure SpeedStep or similar technology is not causing problems

This guideline only applies if you have selected the "max performance interpolated sample position" option in the "Synchro" configuration tab of Rack Performer.


If you get timing problems when moving parameters (jumps, delays) and this option is on, there is a chance that the SpeedStep throttling technology on your processor might be the cause (note: SpeedStep is Intel technology but AMD processors have a similar tech)


Either set the option to "high performance interpolated sample position" or try to disable SpeedStep in the BIOS or using a 3rd-party tweaking tool.




** If this guide didn't help you solve your problem, feel free to ask any question you might have on our forums **
_______
Live Factory Team

Subscribe to our newsletter