Friday, September 26, 2008

Curing Latency on a Windows PC: ASIO4ALL

One of the biggest issues in electronic recording is the issue of latency - the delay caused by the time it takes to process the audio signal. If you're using a Windows PC, chances are that you are running on a system that is slightly unstable for audio. The average user has whatever sound card that came bundled with their PC and are happy because it makes the correct noises. When you get into electronic recording, you will find that your system has serious latency issues.

How Latent Are You?
An easy way to demonstrate latency is to plug in a microphone to your PC, enable it so the speakers are monitoring the microphone, and talk/sing/make noises. Hear that delay between your voice and the voice coming form the speakers? That's your latency at work. Now try to imagine trying to sing or play along with a recording, where the pre-recorded bits are THAT far apart from what you are contributing. It won't be music. It'll be audible chaos.

What Do We Do?
Fortunately we have a easy and free solution in the form of ASIO4ALL, a "free to the end user" project that acts as an ASIO driver for your Windows PC. In simplest terms, it will add support for ASIO, which is an open audio driver format that bypasses a lot of the operating system overhead and goes directly to the hardware.

Does This Replace Anything?
ASIO4ALL does not replace anything on your system - it is simply another option you can use in your audio programs (you'll see ASIO4ALL as an audio device to use). It doesn't replace anything, it doesn't overclock anything, it just acts as a good traffic cop. The worst it can do it give you more options to experiment with on your computer. Options are ALWAYS a good thing to have.

How Do I Use It?
You run the installer and that's most of it. When you launch your DAW or other audio processing program, you should be able to find an option to use the ASIO4ALL audio driver/audio interface/audio system (the exact term depends on the program). Most audio programs will let you interface directly into it, so it really acts as a fully integrated piece of your gear. (For example, in REAPER, Tools->Options->Audio->Device->Audio System shows ASIO4ALL as a selectable "Audio System", and the "ASIO Configuration" on that screen will launch ASIO4ALL's control panel).

In the control panel, you'll see a list of all audio interfaces it identifies in your system. In the lower left is a slider marked "ASIO Buffer Size = XXX Samples". Most the slider to the left to decrease latency, and to the right to increase latency. You can experiment with your system by lowering it, playing something, and then adjusting some more. If you reach a point where the audio is breaking up/crackling or otherwise sounds bad, then you need to increase the buffer size. That's pretty much it. (There is an Advanced Options menu, but if you want to go in there, you'd better read the ASIO4ALL documentation really carefully! Most of the options are way more than most users need.) Once you set it, everything should be fine.

Any Other Advantages?
In addition to controlling latency on a per-interface level, ASIO4ALL is seen as a single audio system by the PC. This means that you can use multiple that means you can run multiple physical audio devices at the same time, even in programs that only support a single device. In a normal program, if you select DirectSound, WDM, or one of the other non-ASIO drivers, you will be limited to 1 input device and 1 output device. Running ASIO4ALL, I can use sound card inputs at the same time as USB inputs and the program doesn't mind. Without ASIO in the middle, this would not usually be possible.

If you want to give it a spin, you can find it at http://asio4all.com.

At the time of the writing, the current version of ASIO4ALL is v.29 beta 4.

No comments: