Quality of Audio Resampler Driver

I think something is wrong with Retroarch Resampler Driver, or maybe it is just of low quality compared to other media players.

Retroarch settings: DSound, Sinc, 48kHz.
Here is how Retroarch plays 44.1kHz and 48kHz white noise:

In comparison here is how AIMP4 plays both white noise test files:

2 Likes

Furthermore;

There is a problem with the XAudio audio driver. Here is how Retroarch plays at 16000 ‘Audio Output Rate’ with various ‘Audio Drivers’:

As you can see the default XAudio has terrible aliasing problem while DSound is clear and accurate.
But, the Sinc Resampling is still of low quality even with DSound.

Here is how Retroarch compares to AIMP while playing 44.1Khz white noise and resampling down to 16kHz: You can clearly see that retroarch ‘knee’ starts too soon and as a result cuts some in-band frequencies, while AIMP has proper high quality resampling algorithm and is much sharper and does not cut in-band frequencies.

Yes, just give it more taps. Also, don’t use DSound and Xaudio for testing resampler responses.

Hi Maister.
I have no means to compile retroarch, but it would be nice to try Sinc with higher taps if I could.
Why not use DSound or XAudio to test the resampler response??
AIMP/Foobar2000 uses DSound and it sounds fantastic and measures perfectly accurate.

As for XAudio vs DSound in Retroarch;
DSound is what most windows audio players use, and it works correctly.
XAudio on the other hand as already stated has aliasing issues even though it is the successor of DSound.
Maybe it is just in Retroarch, but currently XAudio is not a good option to use if one seeks accurate audio driver. Strangely enough, XAudio is the default in Retroarch.

Here you can see 44.1kHz White Noise playing with DSound and XAudio with default 48kHz sampling rate:
DSound is accurate/flat up to 15kHz, but XAudio is starts to filter much sooner, maybe because of the buggy anti-aliasing filtering with XAudio, this is with the default Sinc quality in Retroarch.

1 Like

Unfortunately right now SINC_HIGHER_QUALITY and SINC_HIGHEST_QUALITY are compile-time defines and are not runtime options.

No problem, Sinc quality aside, do you have any idea why XAudio misbehaves in comparison to DSound?