Open kwyntes opened 2 years ago
Non-exclusive backends, by definition, go through the Windows mixer (and the Windows audio engine more generally). Unfortunately the Windows audio mixer itself uses relatively large buffers and as a result adds quite a bit of latency.
In Windows 10 Microsoft made a number of improvements to try to reduce shared mode latency. However, in order to get the full potential of these improvements, everything has to align just right - the application (in this case that means the PortAudio WASAPI backend code), the OS, and the driver. I'd be surprised if this worked out of the box in FlexASIO today.
Ideally someone should sit down and do the work to systematically locate, quantify, and fix the root causes of various sources of latency in FlexASIO backends. Unfortunately, as I explain in #153, this is quite difficult work that takes a lot of time and requires a specialized skillset. For this reason I wouldn't expect things to change anytime soon, sadly.
Does that mean I was just lucky to have it work on my old computer pretty much out-of-the-box the right way?
Also, for anyone interested: I found a different solution luckily: ASIO Link Pro (which is now available for free).
Does that mean I was just lucky to have it work on my old computer
Latency depends on a wide variety of factors. There are many potential reasons why the results might differ between different machines, and it is difficult to tell why without spending a lot of time deep diving into specific setups.
I used to use FlexASIO with Ableton on my old PC so I could play eDrums without a huge latency, however, after I've finally got everything installed and set up on my new PC (a Ryzen 9 zen3 system, with ASUS SupremeFX audio chip if that matters - which is basically Realtek ALC1220) the LOWEST latency I am able to achieve WITHOUT enabling exclusive mode (which I do not want, since the sole reason for using FlexASIO over Realtek ASIO - which does give me a low latency of around 7ms which I can play with -, since I want to be able to have music playing in the background I can play the drums to) is 24.9 ms even with a buffer size of only 10 samples!
I've tried using DirectSound and MME and stuff but they all gave terribly bitcrushed and distorted audio, only WASAPI sounded normal.
I've also tried raising the sample rate in Ableton, which didn't really do anything other than increase CPU usage (even with 192 kHz the overall latency I get is 23.6 ms, which means I gained only 1.3 ms which is unnoticeable).
Note that I have already disabled the input device. Without doing so the latency is even worse (47.2 ms at 44.1 kHz).
Here's my config as of right now:
When enabling
wasapiExclusiveMode
the latency drops to 5.8 ms (even better than the Realtek ASIO, likely because the input device is disabled in FlexASIO). Sadly, this isn't an option for me as it prevents me from hearing sound from anything other than my DAW.