• 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!

Understanding Windows and software EQs

Berwhale

Major Contributor
Forum Donor
Joined
Aug 29, 2019
Messages
3,933
Likes
4,922
Location
UK
Now let's add an EQ to the audio path. There are three ways now :
  1. Player with integrated EQ --> (***) --> physical output
  2. Player --> (***) --> VST Host with EQ VST --> (***) --> physical output
  3. Player --> (***) --> standalone EQ app --> (***) --> physical output
For every way, if all the (***) are "ASIO / KS" then it's bit-perfect. If at least one of the (***) is "Windows mixer" then it isn't.

If EQ is being applied, how can any of these combinations be bit-perfect? Surely bit-perfect relates to the transmission of bits from one object to another. If these objects form a chain and the bits are altered in any one of the intervening objects, then the transmission of bits from the first to the last object ceases to be bit perfect?
 

ElNino

Addicted to Fun and Learning
Joined
Sep 26, 2019
Messages
557
Likes
722

I find the documentation for Microsoft's audio stack very hard to follow (this coming from someone who's done low-level ASIO and CoreAudio programming in the past). There's a lot of explanation of interfaces, but the overall conceptual framework is hard to figure out from the docs... even basic questions, like clock domain handling. (e.g., With an asynchronous output device, does that device's clock propagate to the APO chain, or does the APO chain run on a default clock domain?) And the existence of the whole "CAudioLimiter" thing is totally undocumented; it's not mentioned anywhere at all on Microsoft's Developer website.
 

Vincent Kars

Addicted to Fun and Learning
Technical Expert
Joined
Mar 1, 2016
Messages
781
Likes
1,555
1. Strict definition is same bits as in the content file reaching the DAC. Any resampling, truncation or DSP in the middle (EQ, cross-over, effects, etc) will obviously negate that. But you can get this going through Windows sound engine and it is not correlated with what drivers you use. Obviously, EAPO won't satisfy this definition.

Neither does Windows :)
In shared mode all is resampled to the setting you have chosen in the audio panel.
If this setting is 44.1 kHz and you play 44.1 kHz, you won't have this problem.

By design (like all other OS) Win support multiple audio streams.
As a consequence all audio streams (even a single one) is "mixed".
This means
  • Convert to float
  • Mix
  • Apply dither
  • Convert back to integer
So not bit perfect by design.

If our DACs would still be 16 bit, this would be a degradation.
As out DACs are 24 today, dither at -144 dBFS is nothing to worry about as it is way below the noise floor of your gear.
Hence Win audio is not bit perfect by design but if it is about dither, don't worry.

BTW: what you stated is what happened with the k-mixer (Win XP)
If you have 1 stream running and apply unity gain, XP was indeed able to deliver bit perfect output.
 
OP
Jose Hidalgo

Jose Hidalgo

Addicted to Fun and Learning
Joined
Aug 15, 2020
Messages
961
Likes
1,032
Location
France
@hege: well, you summed it up pretty well. Yes, ASIO is bit-perfect, so between two ASIO apps, no worries.
So what if one of the apps isn't ASIO ? Tough luck, right ? Well, maybe not. Hence this topic.
Like I said, maybe a virtual cable app could allow to create a bit-perfect channel between two non-ASIO apps. What do you think ? :)

If EQ is being applied, how can any of these combinations be bit-perfect?
Please read the OP, line 15 (the one in italic). If you had, you wouldn't have asked this question. Thank you. ;)

In shared mode all is resampled to the setting you have chosen in the audio panel.
Which means that if you choose 44/16 (because 98% of your files are 44/16) and someday you play a 24/192 file without changing the setting, it will be stupidly resampled to 44/16, right ? :oops:
In that case, probably some people are playing hi-def audio on their PCs right now, totally unaware that Windows is silently resampling everything. :facepalm:
That also means that every time we play a different sample rate, we'd have to bring the audio panel and select a different setting.
I guess that's one more reason to use ASIO / KS, right ?
 

hege

Senior Member
Forum Donor
Joined
Dec 25, 2018
Messages
466
Likes
819
Location
Finland
So what if one of the apps isn't ASIO ? Tough luck, right ? Well, maybe not. Hence this topic.
Like I said, maybe a virtual cable app could allow to create a bit-perfect channel between two non-ASIO apps. What do you think ? :)

No. ASIO is sound card/interface feature. Or virtual sound card/cable. They provide the ASIO driver endpoint.

Audio apps/drivers need to have a common protocol that they can talk with. Windows audio ecosystem defines such common protocols (Directsound, KS, ASIO, WASAPI etc). If the supported protocol isn't bit-perfect by nature, how could they simply "create a bit-perfect channel"?

In that case, probably some people are playing hi-def audio on their PCs, totally unaware that Windows is silently resampling everything. :facepalm:
That also means that every time we play a different sample rate, we'd have to bring the audio panel and select a different setting.
I guess that's one more reason to use ASIO / KS, right ?

I thought you were aware of this. Sorry it's hard to judge others technical knowledge sometimes.

Do you understand the difference between ASIO/KS/WASAPI(Exclusive), and the generic Windows audio (DS, WASAPI Shared) which requires a common sample rate so ALL applications can play at the same time? If you want exclusive audio, then you need to use exclusive protocol, which doesn't allow other audio to play.
 
Last edited:

Robin L

Master Contributor
Joined
Sep 2, 2019
Messages
5,208
Likes
7,587
Location
1 mile east of Sleater Kinney Rd
I'll cop to this discussion being way over my head. But, if an audio file is EQ-ed, wouldn't it by definition no longer be bit-perfect?
 

Vincent Kars

Addicted to Fun and Learning
Technical Expert
Joined
Mar 1, 2016
Messages
781
Likes
1,555
I guess that's one more reason to use ASIO / KS, right ?

That is why, if using shared mode, we set Win to the max bit depth supported by out DAC (not 16 of course if 24 or 32 is possible))
If possible, use WASAPI in exclusive mode.
This allows for automatic sample rate switching.

ASIO is a bit of a dark horse as it depends on how it is implemented at the DAC side.
Don't be surprised if it runs on a fixed sample rate as well.
 

Vincent Kars

Addicted to Fun and Learning
Technical Expert
Joined
Mar 1, 2016
Messages
781
Likes
1,555
wouldn't it by definition no longer be bit-perfect
Correct!

Basically we are not in need need of bit perfect but in need of best possible sound quality.
If you improve by using any kind of DSP e.g. DRC or EQ, you improve and as this involves DSP you are as bit imperfect as possible

Bit perfect is often misinterpreted.
It is not about getting best possible sound quality but about to avoid degradation of sound quality by the operating system.
DSP applied well is by design as bit imperfect as hell and when done right, it will sound better indeed compared with a one to one bit perfect reproduction.
 

escape2

Addicted to Fun and Learning
Joined
Mar 8, 2019
Messages
883
Likes
944
Location
USA
That is why, if using shared mode, we set Win to the max bit depth supported by out DAC (not 16 of course if 24 or 32 is possible))
If possible, use WASAPI in exclusive mode.
This allows for automatic sample rate switching.
In addition to setting max possible bit depth on one's DAC, should one also set it to max possible sample rate?
 

Robin L

Master Contributor
Joined
Sep 2, 2019
Messages
5,208
Likes
7,587
Location
1 mile east of Sleater Kinney Rd
Correct!

Basically we are not in need need of bit perfect but in need of best possible sound quality.
If you improve by using any kind of DSP e.g. DRC or EQ, you improve and as this involves DSP you are as bit imperfect as possible

Bit perfect is often misinterpreted.
It is not about getting best possible sound quality but about to avoid degradation of sound quality by the operating system.
DSP applied well is by design as bit imperfect as hell and when done right, it will sound better indeed compared with a one to one bit perfect reproduction.
Thanks. I've just started using the APO EQ to [mostly but not only] flatten out the lower midrange bulge of the Drop 6XX via a cheap [Acer Aspire 5] laptop into Topping E/L 30 and loving the sound.
 

Vincent Kars

Addicted to Fun and Learning
Technical Expert
Joined
Mar 1, 2016
Messages
781
Likes
1,555
In addition to setting max possible bit depth on one's DAC, should one also set it to max possible sample rate?
Why?
Unless you have a NOS DAC but otherwise the DAC will be up/oversampling or even downsample anyway.
What is the fun of resample your audio by Win or any other media player and having it resampled again by your DAC?

It is not very likely the max rate set by Win will be the same as the rate the DAC uses "inside"
If you have a DAC with a couple of digital inputs like Toslink (24/96), SPDIF (24/192) and USB (24/384 or 32/768) what would be the perfect sample rate?
Don't mistake the max capacity of the various inputs for sound quality!

BTW: my veteran Benchmark DAC1 resamples everything to 126 kHz regardless of the input used.
 

Vincent Kars

Addicted to Fun and Learning
Technical Expert
Joined
Mar 1, 2016
Messages
781
Likes
1,555
I've just started using the APO EQ to [mostly but not only] flatten out the lower midrange bulge of the Drop 6XX via a cheap [Acer Aspire 5] laptop into Topping E/L 30 and loving the sound.

Perfect!
That is why we EQ.
My Etymotic ERP4 is very accurate but I can use a bit more bass :facepalm:
My Senn MTW is a bit to warm so I can use less bass
Apply a bit EQ and you have tuned it to your liking

Once again (but you understand this already) bit perfect is not the holy grail.
It is about avoiding degradation by the OS.
DSP is your weapon of choice to get the sound you like,
 

escape2

Addicted to Fun and Learning
Joined
Mar 8, 2019
Messages
883
Likes
944
Location
USA
Why?
Unless you have a NOS DAC but otherwise the DAC will be up/oversampling or even downsample anyway.
What is the fun of resample your audio by Win or any other media player and having it resampled again by your DAC?
So what value should the sample rate be set to on the DAC's Properties page?
 

ElNino

Addicted to Fun and Learning
Joined
Sep 26, 2019
Messages
557
Likes
722
ASIO is a bit of a dark horse as it depends on how it is implemented at the DAC side.
Don't be surprised if it runs on a fixed sample rate as well.

ASIO never resamples; there's no intermediate mixer with a fixed sample rate. It's a very basic and straightforward asynchronous hardware interface.
 

hege

Senior Member
Forum Donor
Joined
Dec 25, 2018
Messages
466
Likes
819
Location
Finland
So what value should the sample rate be set to on the DAC's Properties page?

To the rate what you most often listen when not using exclusive protocols. Youtube is mostly 44khz etc, it's a good default.
 

Vasr

Major Contributor
Joined
Jun 27, 2020
Messages
1,409
Likes
1,922
For shared mode, I use 48khz 24 bit as the default as many of the video embedded audio comes with 48khz audio and I have not noticed any bad effects of upsampling 44.1 to 48khz. Not sure whether the reverse will be equally good.
 

Vincent Kars

Addicted to Fun and Learning
Technical Expert
Joined
Mar 1, 2016
Messages
781
Likes
1,555
ASIO never resamples; there's no intermediate mixer with a fixed sample rate. It's a very basic and straightforward asynchronous hardware interface.
Sorry, it isn't
The ASIO part at the DAC and its implementation is vendor specific.
Some simply force you to set a sample rate.
Some implementations allows you even to send multiple streams to the DAC (yes, resample everything to the setting in the ASIO panel)
Search this forum for more.

asynchronous
Pardon?
ASIO is software.
Don't mistake this for the protocol.
If you use ASIO drivers to send SPDIF, Toslink or AES/EBU to a DAC this protocols won't become async all of a sudden.
Likewise if you use USB with UAC2 in isochronous mode with asynchronous synchronisation, this won't change to synchronous the moment you use a different drive like ASIO/ WASAPI, etc.
 

KeithPhantom

Addicted to Fun and Learning
Forum Donor
Joined
May 8, 2020
Messages
641
Likes
658
I have a question right now, I used to use WASAPI in exclusive mode, but recently switched to regular Windows audio because it is a hassle to use exclusive mode when I need to switch audio from one program to another. Is there any sound quality impact on that?
 

ElNino

Addicted to Fun and Learning
Joined
Sep 26, 2019
Messages
557
Likes
722
Sorry, it isn't
The ASIO part at the DAC and its implementation is vendor specific.
Some simply force you to set a sample rate.
Some implementations allows you even to send multiple streams to the DAC (yes, resample everything to the setting in the ASIO panel)
Search this forum for more.


Pardon?
ASIO is software.
Don't mistake this for the protocol.
If you use ASIO drivers to send SPDIF, Toslink or AES/EBU to a DAC this protocols won't become async all of a sudden.
Likewise if you use USB with UAC2 in isochronous mode with asynchronous synchronisation, this won't change to synchronous the moment you use a different drive like ASIO/ WASAPI, etc.

Sorry, I hate to be blunt, but it's clear you've never programmed with ASIO and you don't know what you're talking about.

ASIO operates on an asynchronous, pull-based (event-based) model, just like CoreAudio and most real-time I/O APIs in other non-audio contexts. It works fine with synchronously clocked hardware, like all such software interfaces do, but the underlying model is asynchronous.

Implementations that allow mixing multiple ASIO streams are actually implemented at the driver level. There's no mixer in ASIO, unlike the Windows audio model and CoreAudio.
 
Top Bottom