Skip to main content

Notice

Please note that most of the software linked on this forum is likely to be safe to use. If you are unsure, feel free to ask in the relevant topics, or send a private message to an administrator or moderator. To help curb the problems of false positives, or in the event that you do find actual malware, you can contribute through the article linked here.
Topic: WASAPI exclusive method selection (Read 2038 times) previous topic - next topic
0 Members and 1 Guest are viewing this topic.

WASAPI exclusive method selection

I'm running the 32-bit stable version of 2.0. As I understand it, WASAPI is now built-in and used by default in output devices, with Shared mode being the default(?). Exclusive mode should bypass any Windows mixer and send the data straight to the DAC (external Schiit Hel+ in this case).  As such, the old WASAPI component has been superseded. Please correct me if I'm wrong.

With the Hel+, the WASAPI Event device produced distorted sound. With my very old Bifrost I always use WASAPI Event*** via the component. When I switched the Hel+ to WASAPI Push it was fine. I read a quote from Schiit about their newer drivers basically use Push, so that makes sense. Now reading that the component isn't necessary, I removed it.

So with the component I had to choose the correct WASAPI method.  Without the component installed there is no choice of method, just [exclusive]. What is the default method? Looking at the Advanced | Playback options, I see "Exclusive output overrides". Presumably, if that is enabled (it is not by default), the options enabled below go into effect. The second option is "Use event". That would be an override of the current method. Does that imply that Push is the default method, and, to enable Event, the "Exclusive output overrides" option must be enabled, and "Use event" must remain enabled?

It seems so.

FWIW, I could get Event in the WASAPI component to work by lowering the Hardware buffer under WASAPI Advanced settings from 24 to 20. Interestingly, after removing the WASAPI component, the WASAPI section under Advanced is gone. The Advanced settings under Playback effect the same choices as the WASAPI component section did.  I tested by enabling the "Exclusive output overrides" option, left "Use event" enabled and changed the buffer to 24ms, as per the old component buffer setting. It should produce distorted sound, and did. I lowered it to 21, and again distorted sound. Lowering it to 20ms worked, just as with the component. The default of 10ms is a very safe one. Given it's advised not to mess with the Advanced settings unless you really need to, I disabled "Exclusive output overrides", leaving the buffer at 20ms. Just happy it works.

Anything wrong with that analysis? Note how I studiously avoided the "which WASAPI method is better?" topic ;-)

Cheers :-)

*** This raises the issue that, with ver. 2.0 (and 1.67+, I think), using a DAC that works with Event (via the old WASAPI component) will be using Push, if the user chooses, e.g., Speakers (Schiit Bifrost) [exclusive], but does not change the Advanced | Playback settings, as noted above.


Re: WASAPI exclusive method selection

Reply #1
Yes the default is now Wasapi.  Choose an output device with "[exclusive]" after it to use Wasapi Exclusive, bypassing the Windows Mixer.

Wasapi Exclusive defaults to event mode.  To change it to push mode, go to Prefs/Advanced/Playback, check "exclusive output overrides" and un-check "Use Event."  BTW a forum search would find this has been discussed several times.

Re: WASAPI exclusive method selection

Reply #2
Wasapi Exclusive defaults to event mode.  To change it to push mode, go to Prefs/Advanced/Playback, check "exclusive output overrides" and un-check "Use Event."  BTW a forum search would find this has been discussed several times.
Given my testing, I beg to differ.  Yes, I've read quite a few of your posts.

I'd like to hear the developer chime in on this.


Re: WASAPI exclusive method selection

Reply #4
Perfect, thanks.

So there is some "magic" that properly detects my Hel+ needs the Push method, and thus that gets used. I won't bug the magician about his tricks, esp. given it's closed code.  Like I said, just happy it works :-)

Ah, I reckon the "trick" is a small enough hardware buffer. Almost forgot my own tests.