I’m running Audacity 2.2.2 compiled with ASIO support on a Windows XP SP3 laptop with an integrated SoundMAX sound card. Asio4all is installed and I can select ASIO as an interface host, but while the monitoring latency (or the machine latency as it is called here) is lower when I’m using ASIO than when I’m using other hosts, it’s still rather noticeable. What is strange is that in e.g. Reaper running on the same laptop the monitoring latency is significantly lower, I almost don’t feel it. I was wondering if there are settings in Audacity that I’m missing that can help reduce the monitoring/machine latency when using ASIO. Thank you!
Latency is directly related to buffer size.* I don’t know how you change the ASIO buffer size in Audacity. In “regular” Audacity it’s under Edit → Preferences → Devices → latency.. I have no idea if that works in the ASIO version.
ASIO doesn’t automatically give you less latency. It’s supposed to allow you to get-away with smaller buffers. Some people get the same or better results with WASAPI.
And, there might not be any benefit without true ASIO drivers for your specific hardware… I don’t know… (ASIO4ALL “fakes out” the application so it thinks it’s talking to an ASIO device.)
\
The buffer is like a storage tank. The digital audio stream comes-in at a smooth-constant rate (44,100 samples per second, etc.). When the multi-tasking operating system gets-around to it, the data is read in a quick burst and written to the hard drive. If some other task hogs the system for a few milliseconds too long, you get buffer overflow and a glitch in the audio. (If you get glitches, a bigger buffer helps, a faster computer helps, and it helps if you can minimize background tasks.)
There is also a playback/monitoring buffer that works the opposite way. The buffer is written-to in a quick burst and the digital audio stream flows-out at a smooth-constant rate. Here the danger is buffer overflow.
I don’t know how ASIO “works”. It may give itself higher priority or it may simply run faster. But, it’s the multitasking and the other processes at the root of the problem (and the operating system is always multitasking, even if you are only running one application).
Thank you, DVDdoug! “My” Audacity doesn’t seem to be different from “regular” Audacity, so it does have the same setting in the same place and it’s 100 ms currently. I clicked around in Reaper and I guess the corresponding setting there is in Preferences/Buffering/Media buffer size, and it’s 1200 ms… I’m completely lost… If this is the same setting that how come that with such a bigger buffer Reaper performs much better than Audacity?
And another thing: from your description of what a buffer is it seems like there should have been two settings for buffer sizes: one for input and the other for output. Do you think Audacity uses this setting for both of them? And also do you think Audacity writes something on a disk when I’m only monitoring and not actually recording anything? Thanks!
Where did you get Audacity from? Was it compiled on XP or a later version of Windows?
How are you measuring latency?
What “host” options are available in the device toolbar?
When ASIO is selected as the “host”, does altering Audacity’s buffer size make any difference to the latency?
I compiled it on Windows 7 with Visual Studio Community 2013. (Wanted to do it with VS Express 2008 on Windows XP on the same laptop where I’m running it, but got stuck on downgrading the Audacity VS solution…)
Purely by ear: I pluck a string and only after some time I hear the sound. In Reaper this delay is almost imperceptible. If there is a way to actually measure the monitoring latency, I will do it.
MME, Windows DirectSound, and ASIO.
Seems not. I tried changing it to 10, 1000, and 10000 ms but did not hear any difference.
I was surprised too! Must be some kind of a different buffer… On the other hand, it’s located in Preferences/Audio/Buffering/Media buffer size, so what else can it be? And it did not find any other buffer settings there.
Check to see what sample rate Reaper is using, and set the Project Rate in Audacity (bottom left corner of the main window) to the same.
The default project rate can be set in Preferences: Quality Preferences - Audacity Manual
I don’t know why you are getting different results with Reaper and Audacity, but I guess it is to do with ASIO4All.
ASIO4All is not a real ASIO driver, it is an ASIO wrapper around WDM drivers, so latency can’t be expected to be any better than the performance of the standard Windows WDM drivers (when using WDM Kernel-Streaming).
If real ASIO drivers are available for your sound card, then I think they would be worth trying. I would expect performance with real ASIO drivers to be the same for all applications.
I must apologize in advance if my guess is incorrect (I’m a complete beginner in computer sound gear and recording), but can it be due to the slower software playthrough implementation in Audacity? Maybe the digitized sound comes to Audacity and Reaper with the same delay but it takes Audacity longer to send it back to the sound card?
As for ASIO4All, I understand that it is not a real ASIO driver, but there is a difference in performance comparing to the MME and Windows DirectSound hosts. The Latency test described in the manual shows it. (I’m still trying to figure out if it is possible to display some sort of a grid over tracks, so I can’t tell how big the difference is, but those metronome peaks are definitely shifted.)
As I wrote, I have an integrated SoundMAX Digital Audio card. I don’t think a real ASIO driver exists for it, at least googling didn’t yield anything… As soon as I get my hands on a real sound card I will try it because I thought of using Audacity for recording.
There are a number of different interfaces and microphones available that can do this trick. The G-Tack in particular has balancing controls and lets you mix your live performance with the backing track.
The UCA-202 performs a live mix with no controls and it’s up to you to set the volumes for your performance.