I know, I know... Windows audio mixer sucks... (From the perspective of perfectionist audiophiles.)
But having just done some measurements with Linux and PulseAudio with some of the upsampling algorithms, I wondered just how well the default Windows 10 audio mixer performed as an upsampler...
As a refresher, here are some plots of the digital filter measurements I showed with Linux last time... The first one is the default hardware ALSA output with the Light Harmonic Geek Out V2 using the excellent built-in hardware digital filter. In Windows, this is the same as using the direct ASIO driver. Next is with the speex-float-1 upsampling, and finally the src-sinc-fastest algorithm.
So, Windows mixer output was set to 24/96 as above. Using foobar set to output the test signals with the Geek Out V2 via DirectSound:
Here's Windows 10's digital filter overlay graph folks:
As you can see, whether output as 24-bit or 32-bit to the Geek Out V2 DAC made no difference. Not surprising since presumably all Windows is doing is converting whatever internal format the calculations are being done in to the 24/32-bit integer value for the DAC. According to this page, the internal "audio stack" operates at 32-bits floating point at least since Windows Vista and 7.
Well, what can I say, the upsampling quality is far from the "ideal" which should look more like the "ALSA direct" graph above. Remember this is upsampling of a 24-bit / 44kHz signal into 96kHz fed to the DAC... There's a ton of aliasing and distortion products in the 19 & 20kHz signal. Wideband white noise with peaks at 0dBFS also suggests significant "intersample overs" - the signal doesn't even get back close to the noise floor from 22.05kHz to 48kHz. I verified that this is not the result of clipping from the ADC recording side.
Why does the digital filter graphs look like this? Check out the impulse response with Windows upsampling:
|Actual analogue output from the Light Harmonic Geek Out V2 DAC of a 44kHz "impulse".|
But wow... Isn't that cool?! Imagine you saw that exact Windows 10 impulse response printed in the pages of a glossy audiophile magazine for a US$15,000 DAC. I suspect many would be impressed, right? After all, no pre- or post-ringing! (May I suggest someone have a look at the quality of anti-aliasing and frequency response with the emm Labs DAC2X :-)
Of course, as demonstrated by the digital filters overlay graph, despite the nice looking "form" of the impulse response, functionally it is very poor at actual anti-aliasing and limiting intermodulation distortions.
Finally, how well does it measure with the RightMark audio suite?
Remember, compared to the extremely challenging signals used in the digital filters overlay test above, RightMark signals are more typical of most standard audio tests. On the whole, like with PulseAudio, the numbers are certainly respectable. Comparing direct hardware (ASIO) with DirectSound Windows mixer set to upsample to 24/96, we see more intermodulation distortion with the 44kHz Windows upsampled signal.
|IMD+N vs. frequency.|
Also, we see a high frequency roll-off with Windows software upsampling:
Despite the clear limitations, there is a big benefit to this kind of upsampling - it works fast. This is probably a good thing in the Windows world because the OS runs on so many types of machines ranging from lowly single-core netbooks/tablets/handhelds to full-function multicore desktop workstations. However, for the audiophile "power user", it would be nice if there existed an "Advanced" option where we could choose "high quality" samplerate conversion even if doing this might increase CPU utilization. I guess the fear would be that people with very slow machines might complain if they turned this on by mistake; hassles for the IT support guy maybe.
As an aside, in Linux PulseAudio you could also use the algorithm src_linear which I suspect is the same as what Windows is doing. Probably even faster yet, one could try src_zero_order_hold; resulting in "non-oversampling" squared off waveforms (could be fun to experiment for those wanting to hear a simulation of NOS).
Speaking of NOS... Something worth thinking about is that this simple interpolation upsampler in Windows has characteristics similar to "non-oversampling" DACs. The early roll-off in high frequencies is very similar and likewise the poor aliasing suppression is similar as well! It's not unusual on audio forums for audiophiles to claim that they "prefer" to listen to these NOS devices (usually based on old DAC chips). But yet given the similarities, one never hears of anyone saying they "prefer" to upsample using Windows mixer and playing their music off the DirectSound driver. Nor as far as I have ever seen, anyone raving about that beautifully "ringless", low "time smearing" Windows 10 impulse response. Go figure... :-)
[Oops. Spoke too soon... Here's someone with a preference for DirectSound and Windows 7 upsampling.]
Overseas now for a few weeks... Happy listening!