Author Topic: Question regarding WASAPI exclusive  (Read 3445 times)

Nubi

  • Newbie
  • *
  • Posts: 5
Hello,


I do not have an issue with MB (my favorite musicplayer since years) but some days ago I listened to highres music and I wondered how it worked.

I have 2 active loudspeakers (Nupro A-700) which are connected via USB to my “Windows 10 – Music - PC”. MusicBee and Windows are running in exclusive WASAPI mode to bypass the Windows audio mixer. The USB input of my loudspeaker (DAC) is limited to max. 16bit / 48 kHz PCD format.

The Issue is that there is no issue ??? if MusicBee is playing a 24bit/96kHz file in WASAPI exclusive mode. Even if I play a 1bit DSD file in MusicBee the sound is perfect. So there must be a format conversion taking place somewhere in the PC from the original PCD/DSD  source format to a 16/48 PCD output. I am happy that it works so well ;D but I would like to understand where this conversion is happening.

 
Does MusicBee recognize that the DAC of my loudspeakers is only capable of 16/48 and is converting to the target format?
Or does MB send the music  in “native format” (e.g. 24bit/96kHz) and the conversion is done from Windows 10 somewhere downstream?  

 
Also there is a resample option in MB (Settings/Player/Resample …). Is this option working if WASAPI exclusive mode is active? When I set the MB resampling option to 96kHz sound is again perfect (but my loudspeakers are not capable to process 96kHz PCD via USB ).
 

Thank you


Nubi

sveakul

  • Sr. Member
  • ****
  • Posts: 2502
In the case of wasapi-exclusive in BASS-based players like MusicBee, I do know that if the audio device itself is not capable of reproducing the sample rate of the file being played, and another resampler is not in use, bass.dll itself will resample it to a device-accepted rate.  Since wasapi-exclusive is in use, the alternative would be no sound at all, because as you know wasapi-exclusive passes the original file sample rate to the device itself, regardless of if the device can process it.

To repeat the above in a slightly different way:  using bass.dll and basswasapi.dll in exclusive mode passes the original sample rate to the device, except in cases where that rate is incompatible with what the device can accept, in which case bass.dll will resample it to an acceptable rate.

Nubi

  • Newbie
  • *
  • Posts: 5
Hello sveakul

Thank you for the quick reply!

Is there an option to prevent basswasapi.dll from well-intentioned format converting (with the risk of sound issues in cases where the formats do not match)?

Nubi

sveakul

  • Sr. Member
  • ****
  • Posts: 2502
Actually it's the bass.dll file that does the resampling in those cases.  I don't know of a way to prevent that, or why one would, because as I mentioned it only happens if the audio device has no support for the actual file's sample rate.  Otherwise it does not touch the rate if using wasapi-exclusive.

I only use wasapi-exclusive with MusicBee, and first noticed this behavior with radio streams where some of them were being sent at 22kHz and 24kHz sample rates, both of which are unsupported by my audio card, yet MB had no problems playing them, while Foobar would deliver no signal at all unless a plugin resampler set to a compatible rate was activated first.  Later the behavior was confirmed to me by the BASS developer over at un4seen.

I should mention that any use of MusicBee's crossfade DSP effect and fade-ins will cause the audio to be resampled by MB to 44.1kHz by default no matter what you do, so be sure these aren't activated unless you prefer the effect.
Last Edit: January 22, 2019, 09:50:08 PM by sveakul

lux1o

  • Jr. Member
  • **
  • Posts: 81
in foobar running in exclusive WASAPI mode to bypass the Windows audio mixer
when i try to play a dac unsuported KHz

it says

Unsupported stream format

as expected