• WANTED: Happy members who like to discuss audio and other topics related to our interest. Desire to learn and share knowledge of science required. There are many reviews of audio hardware and expert members to help answer your questions. Click here to have your audio equipment measured for free!

Windows: Default, Wasapi and ASIO renderers.

Offler

Senior Member
Joined
May 27, 2021
Messages
414
Likes
399
There is a debate why Windows has such bad sound, compared to Apple or small linux based streamers. Also there is a discussion which audio renderer or interface is best for playback. And I have to emphasize the playback specifically, because its no surprise that ASIO is great for audio mastering and recording of new content.

So I took the scientific approach...

1. I found 1KHz sinewave 24bit 192KHz samplerate 0dB Wav file.
2. I played it through various audio renderers in Foobar2000 and Media Player Classic - Home Cinema.
3. In every case signal went through optical SPDIF and landed in external DAC of NAD d3020v2.

I measured headphone out of the amplifier on my netbook which has lower internal noise than desktop PC. Output/Input were calibrated close to 0.0dB (using MPC-HC Default), while all software volume controls were on 100%.

Lets start with MPC-HC:

Default audio renderer.
MPC-default.jpg


There is a significant distortion around 1KHz. This is why Windows does subjectively and objectively sounds worse. As it was pointed out in a different topic, there is a workaround using Equalizer APO.

After applying Pre-amp -0.14dB in Equalizer APO...
MPC-defaultEAPO.jpg

the distortion is gone. This is a way how EQ APO may fix music and sound in games, which usually do not have any other option.

If you want to know why the workaround works and why the distortion even occurs read here:
https://www.audiosciencereview.com/...nding-the-windows-audio-quality-debate.19438/


Then there is MPC-HC internal Audio renderer, which is usually the only way how to access Wasapi Exclusive mode.
MPC-internal.jpg
Results were identical for both exclusive and shared output. Sound is slightly less loud, by about 5dBs compared to Default. If you check the very top graph, the signal is not touching the boundaries as in most tests.


Then there is MPC-HC with 'MBSE Multichannel ASIO Renderer':
MPC-asio.jpg

I expected it to be perfectly identical to Internal renderer, but there are two spikes around the 1KHz and harmonics seem to be slightly higher, but nothing audible. The main signal is much closer to 0dB thus slightly louder.

Also surprisingly, 'MBSE Multichannel ASIO Renderer' is a paid product for about 30 Euro.


Then lets go for Foobar2000 (v 1.6.5), 'Default audio renderer':
Foobar-Default.jpg

Interesting. Foobar applied its own volume correction by about 8-10dB, so the sound is not distorted. The volume reduction is even more noticeable when compared to the MPC-HC Internal renderer.

Then lets go for WASAPI Exclusive, with 24bit rendering:
Foobar-WASAPI.jpg

Now the signal is much closer to the 0dB and harmonics are louder as well.

Lets check ASIO:
Foobar-ASIO.jpg

Identical to WASAPI Exclusive.



For Foobar 2000
Wasapi and ASIO plugins seem to operate in exactly same way in terms of audio output, however in current version ASIO plugin does not require manual switching between bitrates, but does not allow seeking.

Even Default renderer will operate without any Windows-related distortion, but at significant cost of volume.

For MPC-HC
its surprising that 'Internal Audio Renderer' reduces volume. 'Default' renderer performs as expected - introduced distortion when on maximum volume, but its easy to be fixed, the only downside is it operates in Shared mode, which is not optimal for playing DVD/BDs with 48KHz sample rate.

'MBSE Multichannel ASIO Renderer' acts as in Exclusive mode, does not reduce volume at all, even when it looks to introduce slight distortion around -100dB - nothing i should be able to hear with my setup.


Conclusion:
Foobar2000 'Default' renderer and MPC-HC 'Internal renderer' took away quite a lot of the volume, meaning you might need to increase the volume elsewhere.

Its actually surprising that there is any difference between different audio renderers. Even when there is little difference in terms of distortion, its actually quite interesting to see such different volume levels, as some renderers may take away 5 or 10dB of the dynamic range.
 

Pluto

Addicted to Fun and Learning
Forum Donor
Joined
Sep 2, 2018
Messages
990
Likes
1,631
Location
Harrow, UK
There is a debate why Windows has such bad sound
Is there? I honestly don't see what problem this is trying to solve apart, possibly, from irrational or groundless audiopile prejudice.

Having used Windows for serious audio since 7, I can honestly say that I have never experienced the tiniest difficulty obtaining "bit perfection"* through the Windows audio stack when the audio application is set to WASAPI exclusive. If you don't / can't / won't use WASAPI exclusive there is no claim of bit-perfection so you should be prepared for whatever you get.

So I'm at a loss to understand what problem all the above is trying to solve.

* the state proven, by test equipment, that the digital audio output is bit-identical to the contents of a specially prepared test file
 
OP
O

Offler

Senior Member
Joined
May 27, 2021
Messages
414
Likes
399
Is there? I honestly don't see what problem this is trying to solve apart, possibly, from irrational or groundless audiopile prejudice.

Having used Windows for serious audio since 7, I can honestly say that I have never experienced the tiniest difficulty obtaining "bit perfection"* through the Windows audio stack when the audio application is set to WASAPI exclusive. If you don't / can't / won't use WASAPI exclusive there is no claim of bit-perfection so you should be prepared for whatever you get.

So I'm at a loss to understand what problem all the above is trying to solve.

* the state proven, by test equipment, that the digital audio output is bit-identical to the contents of a specially prepared test file

Audiophiles and people who do audio production were trying to convince me to use either Apple Mac or small Linux-based streamer as a primary source on base that Windows Audio Stack is bad and that I should avoid it at all costs. However one of my reasons for getting better audio was also PC gaming and great musical scores in games (lets say Journey, Nier Automata, heck even Skyrim).

Indeed, directsound has issues with distortion (first screenshot), but workaround is here on this forum for a while. There is some rationale behind that opinion, but Wasapi Exclusive is not a common knowledge among audiophiles.

Aside from that I completely agree with your statement.

Rest of my measuring was just pure curiosity if there is "better or worse" audio renderer. I expected that the answer will be "no, every audio renderer sounds the same", and finding out that some of them are at -5 and- 10dB is surprising for me.
 

Pluto

Addicted to Fun and Learning
Forum Donor
Joined
Sep 2, 2018
Messages
990
Likes
1,631
Location
Harrow, UK
were trying to convince me to use either Apple Mac or small Linux-based streamer as a primary source on base that Windows Audio Stack is bad and that I should avoid it at all costs
The shame is that the Windows audio stack is unpredictable by default but it isn't designed for audiophile use. The fact that it works satisfactorily for most users, most of the time, suggests that the design concepts are right.

Equally good is that half a dozen mouse clicks completely solve all the perceived problems.
 

bennetng

Major Contributor
Joined
Nov 15, 2017
Messages
1,634
Likes
1,692
cost of volume
The whole thing is irrelevant to how Windows mixer works at all. For example, if you are working with stereo, do this...

For foobar2000, add the "Convert mono to stereo" DSP:
foo.png


For MPC-HC, enable audio switcher and set the output to stereo:
mpc-hc.png

The difference of level is all about the implicit/default implementation of panning/mixing rule when combining/splitting audio channels among different software, which usually works in stereo pair out of the box.

And obviously, not all games are created in the same way. For example the XAudio2 API works quite differently from these media players, and things like CRI Middleware, Unity, and how things are coded even when using the same set of tools...

When recording, make sure to record with stereo mode as well, or at least, knowing what the recording chain does when dealing with different amount of audio channels. Ideally, do everything in digital domain to get rid of analog distortion. If you have equipment with SPDIF in/out, you can look further, otherwise software loopback is also fine. CAudioLimiter will still affect the result, but at 0.985/-0.14dB. I still have a video to illustrate these things with an older version of foobar2000 which used DS output:
So, no several dBs of differences. If you don't have the same result, then all issues are only specific to your system, and not universal to everyone.

Another way of doing these kinds of tests is to use a stereo test signal. RMAA for example always operates in stereo and there is no difference in audio level among different APIs, in either digital SPDIF, software loopback, and analog I/O.
 
OP
O

Offler

Senior Member
Joined
May 27, 2021
Messages
414
Likes
399
The whole thing is irrelevant to how Windows mixer works at all. For example, if you are working with stereo, do this...

For foobar2000, add the "Convert mono to stereo" DSP:


For MPC-HC, enable audio switcher and set the output to stereo:

The difference of level is all about the implicit/default implementation of panning/mixing rule when combining/splitting audio channels among different software, which usually works in stereo pair out of the box.

And obviously, not all games are created in the same way. For example the XAudio2 API works quite differently from these media players, and things like CRI Middleware, Unity, and how things are coded even when using the same set of tools...

When recording, make sure to record with stereo mode as well, or at least, knowing what the recording chain does when dealing with different amount of audio channels. Ideally, do everything in digital domain to get rid of analog distortion. If you have equipment with SPDIF in/out, you can look further, otherwise software loopback is also fine. CAudioLimiter will still affect the result, but at 0.985/-0.14dB. I still have a video to illustrate these things with an older version of foobar2000 which used DS output:

So, no several dBs of differences. If you don't have the same result, then all issues are only specific to your system, and not universal to everyone.

Another way of doing these kinds of tests is to use a stereo test signal. RMAA for example always operates in stereo and there is no difference in audio level among different APIs, in either digital SPDIF, software loopback, and analog I/O.
My point was just to test if there is any difference between different audio renderers. Settings used are in first post, while each software was set to maximum volume. Honestly I did not expected any measurable difference at all, just by switching between different audio renderers or different player software, but decreasing maximum output seems like a logical step for preserving audio quality.


And following this, I would not be surprised if older version of Foobar might behave differently.
 

bennetng

Major Contributor
Joined
Nov 15, 2017
Messages
1,634
Likes
1,692
My point was just to test if there is any difference between different audio renderers. Settings used are in first post, while each software was set to maximum volume. Honestly I did not expected any measurable difference at all, just by switching between different audio renderers or different player software, but decreasing maximum output seems like a logical step for preserving audio quality.


And following this, I would not be surprised if older version of Foobar might behave differently.
But your title started with Windows, right? As well as your introduction paragraph mentioning about other OSes.
Basically, one needs to have deeper understand of individual software's functionality in order to achieve the desired result, regardless of OSes.
I posted the video in the past, and I can't change the past. If I use the current (1.6.7) version of foobar2000, the behavior remains the same: adding the corresponding channel switching DSP to achieve the maximum output. The only difference is that with the shared WASAPI output, I can use foobar's volume control alone to defeat the limiter without dealing with ReplayGain preamp.

If the sole purpose is merely changing level within these two software (foobar and MPC-HC), additional software like EQ APO seems redundant, better use other software as example.
 
OP
O

Offler

Senior Member
Joined
May 27, 2021
Messages
414
Likes
399
But your title started with Windows, right? As well as your introduction paragraph mentioning about other OSes.


If the sole purpose is merely changing level within these two software (foobar and MPC-HC), additional software like EQ APO seems redundant, better use other software as example.

Well I tested 3 different audio renderers using MPC-HC and 3 different renderers using Foobar. EQ APO was just to demonstrate issue in Wasapi Shared mode (most common default on Windows) and the fix applicable on a os-wide level.

Also both players were in their default settings, except of using different audio renderer. And i titled it "Windows", simply because its more convenient than using "not linux, apple, android, you know which OS". :)

Joking aside, i been told many times that Windows desktop PC is the worst way of playing music and I should spend more money on a different device or equipment. I fixed hardware issues with toslink, and later fixed issues related to Windows mixer simply by bypassing it, or adjusting it using EQ APO - which improved sound for games with nice musical score.

Also thanks for the tip about audioswitcher in MPCHC. I used one in LAV filter, but MPC one is better.
 

bennetng

Major Contributor
Joined
Nov 15, 2017
Messages
1,634
Likes
1,692
Well I tested 3 different audio renderers using MPC-HC and 3 different renderers using Foobar. EQ APO was just to demonstrate issue in Wasapi Shared mode (most common default on Windows) and the fix applicable on a os-wide level.

Also both players were in their default settings, except of using different audio renderer. And i titled it "Windows", simply because its more convenient than using "not linux, apple, android, you know which OS". :)

Joking aside, i been told many times that Windows desktop PC is the worst way of playing music and I should spend more money on a different device or equipment. I fixed hardware issues with toslink, and later fixed issues related to Windows mixer simply by bypassing it, or adjusting it using EQ APO - which improved sound for games with nice musical score.

Also thanks for the tip about audioswitcher in MPCHC. I used one in LAV filter, but MPC one is better.
Things are changed again after my previous reply:
Added a second WASAPI based internal audio renderer. The existing internal renderer has been renamed to SaneAR (its original name). Don't ask what the difference is between the two. There is little difference in behavior and functionality.
Worth to take a look and see if there are differences or not.
 
OP
O

Offler

Senior Member
Joined
May 27, 2021
Messages
414
Likes
399
Things are changed again after my previous reply:

Worth to take a look and see if there are differences or not.
I just spent about two weeks configuring madVR and LAV to get best possible blu-ray playback.

Calibrated sRGB display, capable of 23.976 and 24Hz, chroma and image upscale, it really feels like cinema. As a photographer I could even correctly guess that Big Lebowski was shot on Kodak :D

Sound is downmixed to stereo, but most sources are 48KHz 24bit DTS-HD MA, TrueHD or even BluRay_PCM and played with 0,0001% clock deviation.

I wonder if it can get better on given hardware...
 
Top Bottom