Setting up your Windows PC for audio recording, especially when you add audio hardware, instruments, and DAWs into the mix, can be a bit of a headache. In this article, we’re going over some common issues related to audio drivers, hardware configuration, and “a-ha!” moments.
An explanation of Windows audio APIs
In most DAWs, you are able to change the audio API. The options, and what they do, are typically:
- DirectSound: Belongs to the Microsoft DirectX API. It is a universal way for all audio devices to work properly with Windows. The problem with DirectSound for recording with live monitoring (real-time playback while recording at the same time) is that DS introduces a large amount of latency, as your input (guitar, keyboard, etc) passes through the emulation layer before being output.
- WaveOut: An extremely outdated predecessor to DirectSound, this should never be used, unless your audio drivers are so borked it is somehow the only thing that works (I’ve seen this before).
- WDM Kernel Streaming: Another ancient legacy audio mode that is a little less CPU intensive than WaveOut, but should be avoided.
- WASAPI: This is similar to DirectSound, except that it uses an “Exclusive” mode, which means that whatever app you’re using WASAPI mode in will take complete control of the audio driver. So if you have a DAW open in WASAPI mode, you will not hear any audio from a YouTube video in Google Chrome – because WASAPI mode in the DAW has taken exclusive control of the audio driver.
- ASIO: A dedicated hardware-level driver, it typically has true bitrate support and virtually no latency. ASIO is the preferred audio system for input recording if you have a hardware device with its own ASIO drivers. For example, many USB DACs, audio interfaces, and digital effects pedals have dedicated ASIO drivers available directly from their manufacturers.
Now that we’ve explained the various audio systems, lets troubleshoot some common audio issues when working with DAWs.
ASIO Mode: Input detected over USB, can’t select Windows audio (e.g. Realtek) as output.
This is by design. When ASIO is chosen as the audio system, the ASIO-enabled device becomes the input/output source. To hear audio output from ASIO, you need to connect a cable from the device’s output, to your computer’s input (or an alternative pair of speakers not connected to your computer).
Here’s a diagram:
My audio device is connected to my PC via USB. Shouldn’t I get audio output from my computer speakers at the same time I’m recording an instrument, using ASIO drivers?
No. You would create a feedback loop. Remember that ASIO is a hardware-dedicated driver, which exclusively uses the hardware device.
You are sending signal from the audio device to your PC over USB. The signal is then mixed in your DAW. It then sends the signal back to your audio interface, to go through the OUTPUT line.
What you’re basically asking is for the audio signal to travel from your audio device to your PC, be mixed in the DAW, then travel back to your audio device, then travel back to your computer’s speakers. This is not possible, because your computer speakers are not a part of the ASIO drivers on a software level.
What would happen if you could do this would be the sound signal would travel back and forth between your audio interface and your PC speakers infinitely, creating the most awful sound known to mankind as it looped back and forth, getting progressively louder and screechier by the second. It would be the equivalent of this:
TLDR: When using ASIO exclusive mode, you need an external output connected directly to your ASIO hardware device. It will not output through your computer speakers on a software level, because your speakers are not part of the mix.
How can I use ASIO input and still get PC speaker output?
You have two options here.
You can use DirectSound, which should let you select your ASIO device as the input, and your computer’s native speakers (Realtek, etc) as the output. However, this adds a lot of latency because it passes both layers through the emulation level.
If you’re playing a guitar, for example, you’ll hear the guitar notes like, 5 seconds after you hit the strings. Because the input signal is being passed from your audio device to your PC, being mixed in emulation, then output through Realtek (or whatever your native PC sound is. Most probably Realtek).
Your second option is ASIO4ALL. This is a third-party, generic ASIO driver which sort of “tricks” Windows into allowing ASIO-based input, with an alternative output, such as Realtek. It does this through witchcraft and kernel stream wrapping and lots of other little fancy terms I can’t really explain. It works quite good – the latency is not as good as pure ASIO mode, but its much faster than DirectSound.
I’m using ASIO4ALL, but there’s no input / output options in my DAW?
Click “ASIO Configuration” and make sure your input and output devices are actually enabled in the ASIO4ALL client. Then restart your DAW.
For more detailed explanation on using ASIO4ALL in a DAW, see Appual’s guide How to Record Guitar on PC Using Reaper DAW.
I’m using DirectSound, and there’s horrible crackling and static from the output.
That’s what I was talking about earlier with DirectSound latency. DirectSound’s emulation speed (ability to process and real-time output what you are recording) largely depends on a number of factors, but CPU is a large factor.
When the buffer is set too low (lower buffer = faster emulation), the driver pretty much trips up over itself and starts producing those horrible crackling noises. But the higher your buffer setting, the more delay is introduced (hearing your instrument a couple seconds after playing a note). So with DirectSound, you need to adjust the “Buffer” setting and find the “sweet spot” before your CPU starts gasping for air and can’t keep up anymore.
Which is why you should stick with ASIO or ASIO4ALL.
My DAW crashes when changing audio modes.
This is pretty common, and it’s usually because some app on your computer has taken exclusive control of your audio device. So lets say you have Chrome open in the background, and you try changing the audio device in your DAW from ASIO to DirectSound. But for some reason, Chrome had exclusive control of DirectSound. So now your DAW crashes, because it can’t take control of the audio driver from Chrome. It’s generally a “first come, first served” basis.
What you can try doing is first, make sure no apps are open on your computer that can use audio. The problem here is that even Windows can use audio, with sound effects. So you need to disable pretty much everything.
Also, try disabling “Exclusive Mode” in your audio devices. You honestly only need it enabled for when you want to use WASAPI mode.
I’ve connected my audio interface output to external speakers / headphones, but I’m only getting Left or Right channel sound, not both?
You’re probably using a mono cable. Depending on your specific audio device, you’ll probably need a stereo plug-in adapter. Or a 6.3mm to dual stereo cable. Or a bunch of other weird variations, because it really depends on your device and what you’re trying to connect it to. Ask your local audio hardware store.