WASAPI woes

I was having issues with WASAPI, and thought maybe it was just the screwy laptop I was using.
Now I’ve tried it on a bunch of different computers, and find that it is pretty universally problematic.

Primarily, when initializing a device, it always reports “the inputs and outputs have no common sample rate”.

This is using JuceDemo, compiling from the tip. I’ve seen this issue for months now.
Any idea when this might get addressed?

Would love to help, but haven’t seen hthat appen on my own machine… There’s a JUCE_WASAPI_LOGGING flag that might show some useful info?

I know from a large customer base that this happens on a lot of computers - around one third of Windows installations.

Jules, its easy to reproduce if you setup your (consumer level) audio card to use different sample rates in Windows’s audio settings / advanced.

The AudioDeviceManager cannot handle this as it require in- and output to run synchronously.

ah… I see… Hmm, bit tricky to fix that. Drat.

Maybe as a workaround that avoids async devices, WASAPI exclusive mode can override those Windows settings? (havent tried)

… and in my book this again is proof enough, along with the subpar general performance of the API, and the past experiences with DX effects and similar attempts by Redmond, that WASAPI is another failed attempt by Redmond to replace working technology with their “not made here” mentality.

IMO, WASAPI is not worth supporting.

If you want JUCE on Windows outside the hardcore pro-audio, there are no alternatives to WASAPI.

That is sadly true. WASAPI is indeed crap though.

The current solution is simple: the user has to reconfig the devices to make it so.

The complicated solution is allowing us JUCE programmers to place a custom resampler/use JUCE’s ResamplingAudioSource by default in the device chain.

Or force users to use ASIO4ALL, and bundle and install that. Hmmmm, pain in the butt though.

Since Windows 8, seems like we just need to enable WASAPI’s SRC. See Enabling Windows Audio's SRC

@AaronLeese ASIO4ALL is pretty great, but not a total solution. Our app requires mixing the JUCE audio with system sounds/other apps and ASIO4ALL blocks that and makes our lives difficult. We’re also running into the sample rate errors though, as well as tons of latency through WASAPI since JUCE hasn’t upgraded to using IAudioclient3 for windows 10.