• 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

OP
Jose Hidalgo

Jose Hidalgo

Addicted to Fun and Learning
Joined
Aug 15, 2020
Messages
961
Likes
1,032
Location
France
Thanks a lot @hege (and @Vincent Kars and @ElNino ...) for your tech talk. I'm no expert on Windows audio, that's precisely why I created this topic. Now I'm beginning to see things more clearly (sort of). My vision was too simplistic : "ASIO / KS / WASAPI = bit-perfect / Windows mixer = lossy", without any protocols or samplerate notions.

I didn't even know the difference between ASIO / KS / WASAPI, but I have found a very interesting ASR discussion on that matter, which I recommend we all read : https://www.audiosciencereview.com/...-wasapi-and-music-players-foobar-jriver.7412/ . It shows how technical and difficult this stuff is : there really is no shame in not knowing the inside works of it. It's REALLY complicated, and developers like @edechamps seem to know a great deal about it. Kudos to them ! :D

With all that said, if I go back to my own questions / issues, I have to say that I'm becoming increasingly lost now o_O Here's why :
  • My player (foobar2000) can output in ASIO, in KS, in WASAPI or via the Windows mixer.
  • EQ issues aside (let's leave that for the moment), at some point the audio needs to reach my two USB DACs (Topping E30 for the record).
    • Why two DACs ? Because my player outputs on purpose a 4-channel audio, which I need to split between the two DACs (ch1&2 go to DAC1, ch3&4 go to DAC2).
      • Of course to split the audio between two physical devices, I need a piece of software between the player and the USB DACs. There's ASIO4ALL that is said to do that in a breeze, but there's JACK audio too, or even VB-Audio Hifi Cable. I'm open to suggestions.
      • I'll add that clock sync between the two DACs won't be an issue here, as I will never play more than a few songs in a row before pressing stop/pause, so the DACs won't have the time to really get out of sync.
        • Apparently the drift without a master clock is estimated to be about 2 samples per second @ 44.1 KHz, which won't be heard on two different headphones worn by two different people : it would start to become noticeable between the two people after, say, 0.2 sec of drifting =8820 samples = 4410 seconds = 74 minutes of continuous play. A whole CD.
Given that, I'm wondering now if there can be any downsides with some of these output modes (ASIO, KS, WASAPI, Windows mixer). For example I don't want to set a fixed sample rate within my DACs : I want them to adjust automatically to the sample rate of the played audio, and show the correct samplerate on their displays. If I understand well, some of these output modes just don't allow that. Does any of you know more about this ? ;)

Line 10 and line 15 contradict each other. Which one is true?
Line 15 is there to explain why line 10 shouldn't be understood in the way you maybe did. I thought that was obvious. Sorry if it wasn't. :confused:
 
Last edited:

Chromatischism

Major Contributor
Forum Donor
Joined
Jun 5, 2020
Messages
4,804
Likes
3,747
I'm thinking that because of all of the complexity of doing this in software, with EQ from the music player only vs system-wide and tradeoffs either way, one could just skip all of that and do it via a miniDSP 2x4 HD. Now, everything going to the speakers will get EQ no matter what you're doing and it will always work from power on without clicking or changing anything.

Just go from there to your amp.

I haven't done that yet but it's looking like the KISS option. Especially as I already have REW setup. Am I wrong?

For the record I also use Foobar2000 with WASAPI.
 

Attachments

  • Capture.PNG
    Capture.PNG
    686.2 KB · Views: 136
Last edited:
D

Deleted member 17820

Guest
It stands right there in the name:

"Equalizer APO is a parametric / graphic equalizer for Windows. It is implemented as an Audio Processing Object (APO) for the system effect infrastructure introduced with Windows Vista."

https://docs.microsoft.com/en-us/windows-hardware/drivers/audio/audio-processing-object-architecture

It hooks directly into the Windows audio pipeline, not as some separate after effect. So of course it doesn't work as ASIO/KS by design.

PS. That's why I like it, it works rock solid without any latency, no problems with lipsync with browsers, Youtube etc which doesn't use exclusive audio.
I've tried for 2 months to get EQ APO to work. It will work then stop, sometimes the configurator works then it stops responding. I finally gave up and bought a mini DSP, I want to enjoy audio not mess around with a program wasted so much time. IF you works good for you then I am happy.
 
OP
Jose Hidalgo

Jose Hidalgo

Addicted to Fun and Learning
Joined
Aug 15, 2020
Messages
961
Likes
1,032
Location
France
@Chromatischism , so you mean replacing my two Topping E30 with a single miniDSP 2x4 HD for a similar price, right ?
It may be simpler, but its ASR review shows that even though it's not a bad product, it consistently falls behind the best-in-class ones with significant differences. I would be frustrated if I had to trade two E30s against a worse DAC only for the sake of simplicity. That wouldn't be like me.

The EQ part is already solved for me with convolution. I'm just trying to see if I can do better/simpler, but "as is" it already works.

I guess now I just have to figure the best way to go from foobar2000 to the DACs while retaining the "automatic samplerate display" function.
 
OP
Jose Hidalgo

Jose Hidalgo

Addicted to Fun and Learning
Joined
Aug 15, 2020
Messages
961
Likes
1,032
Location
France
Here's a short addendum.
I talked about ASIO4ALL, JACK Audio and VB-Audio Hifi Cable.
I forgot to mention DDMF's Virtual Audio Stream : https://ddmf.eu/virtual-audio-stream/ (the site seems to be down at the moment)
Here's a short tutorial about it. It looks pretty powerful as it basically allows to route everything (every app, every type of input/output, not just ASIO) to everything. It may even support multichannel as far as I can tell, and it also seems to act like a VST Host, allowing us to include VSTs (like EQs) in the loop. :oops: How didn't I find this earlier ? It seems to be quite old actually, so I'd need to make sure that it has been updated since then.

Plus since I'm currently testing DDMF IIEQ Pro (a PEQ VST), which seems to give great results compared to other PEQs, it could be nice to have an "all-DDMF" config : foobar --> DDMF Virtual Audio Stream (with DDMF IIEQ Pro VST) --> DACs.
 
Last edited:

hege

Senior Member
Forum Donor
Joined
Dec 25, 2018
Messages
466
Likes
821
Location
Finland
@Jose Hidalgo could you describe in more detail what you are actually doing with your two DACs? Do they output the same audio? To where? Sounds like you are making everything much more complicated than needed, but I wait for your explanation. :)

edit: If you for whatever reason insist needing both DACs simultaneously with different EQs (as I see you mention in some post), just go buy the damn JRiver (of course can try it for free first). It will do all this for you without any hassle with it's great and flexible DSP capabilities. You can simply create separate Zones for both DACs and Link them so they play simultaneously. You can apply any convolution, PEQ or even VST to both independently. If you need system wide sound for Youtube or whatever, just use the JRiver WDM virtual sound card to route all sound there.
 
Last edited:

witwald

Senior Member
Forum Donor
Joined
Jul 23, 2019
Messages
480
Likes
505
Is there any way to check the sampling rates and bit depths of the input audio streams when in Windows 10? Ideally, this tool would work for multiple audio streams.
 

Chromatischism

Major Contributor
Forum Donor
Joined
Jun 5, 2020
Messages
4,804
Likes
3,747
@Chromatischism , so you mean replacing my two Topping E30 with a single miniDSP 2x4 HD for a similar price, right ?
It may be simpler, but its ASR review shows that even though it's not a bad product, it consistently falls behind the best-in-class ones with significant differences. I would be frustrated if I had to trade two E30s against a worse DAC only for the sake of simplicity. That wouldn't be like me.
But is your room so quiet or do you listen so loud that you could hear noise at -100 dB?
 
OP
Jose Hidalgo

Jose Hidalgo

Addicted to Fun and Learning
Joined
Aug 15, 2020
Messages
961
Likes
1,032
Location
France
Well, this is getting slightly out of hand. I understand some of you are willing to help with my setup, but this has already been discussed in other topics/forums, and I really don't want this to get off-topic. Please understand that there are some things that just won't change. The DACs are two E30. The amps are two L30. The player is foobar2000 (which I've been using for the last 15 years with a lot of heavy personal investment on my side, so that will definitely not change). The OS is Windows. All that is final, so please don't insist. Again, thank you all. :)

@hege , just picture me and my wife, listening to the same music, at the same time, on two different headphones, each one with its own EQ preset.

Audio Signal.png


The only simplification here would be replacing the two DACs by a single multichannel DAC. That would eliminate the ASIO4ALL part. But since multichannel DACs are way too expensive, that won't happen either. The only three things that may change are :
  1. The EQ1/EQ2 part taking place either within foobar2000 or via a separate Windows app (EAPO, a VST Host/Plugin, whatever)
    (currently it already works within foobar2000 via convolution)
  2. foobar2000's output mode (ASIO, KS, WASAPI, DirectSound)
  3. ASIO4ALL being replaced by another app
Initially this topic was about understanding the inner works of Windows sound management, in order to help me with points 1 and 2. Turns out that it's way more complicated than I expected, and it's actually point 3 that may help determine points 1 and 2. So like said on my last posts, I'm focusing on point 3 now. It makes sense to me, and I hope it does to you too. :)
 

Jimbob54

Grand Contributor
Forum Donor
Joined
Oct 25, 2019
Messages
11,111
Likes
14,774
Thanks a lot @hege (and @Vincent Kars and @ElNino ...) for your tech talk. I'm no expert on Windows audio, that's precisely why I created this topic. Now I'm beginning to see things more clearly (sort of). My vision was too simplistic : "ASIO / KS / WASAPI = bit-perfect / Windows mixer = lossy", without any protocols or samplerate notions.

I didn't even know the difference between ASIO / KS / WASAPI, but I have found a very interesting ASR discussion on that matter, which I recommend we all read : https://www.audiosciencereview.com/...-wasapi-and-music-players-foobar-jriver.7412/ . It shows how technical and difficult this stuff is : there really is no shame in not knowing the inside works of it. It's REALLY complicated, and developers like @edechamps seem to know a great deal about it. Kudos to them ! :D

With all that said, if I go back to my own questions / issues, I have to say that I'm becoming increasingly lost now o_O Here's why :
  • My player (foobar2000) can output in ASIO, in KS, in WASAPI or via the Windows mixer.
  • EQ issues aside (let's leave that for the moment), at some point the audio needs to reach my two USB DACs (Topping E30 for the record).
    • Why two DACs ? Because my player outputs on purpose a 4-channel audio, which I need to split between the two DACs (ch1&2 go to DAC1, ch3&4 go to DAC2).
      • Of course to split the audio between two physical devices, I need a piece of software between the player and the USB DACs. There's ASIO4ALL that is said to do that in a breeze, but there's JACK audio too, or even VB-Audio Hifi Cable. I'm open to suggestions.
      • I'll add that clock sync between the two DACs won't be an issue here, as I will never play more than a few songs in a row before pressing stop/pause, so the DACs won't have the time to really get out of sync.
        • Apparently the drift without a master clock is estimated to be about 2 samples per second @ 44.1 KHz, which won't be heard on two different headphones worn by two different people : it would start to become noticeable between the two people after, say, 0.2 sec of drifting =8820 samples = 4410 seconds = 74 minutes of continuous play. A whole CD.
Given that, I'm wondering now if there can be any downsides with some of these output modes (ASIO, KS, WASAPI, Windows mixer). For example I don't want to set a fixed sample rate within my DACs : I want them to adjust automatically to the sample rate of the played audio, and show the correct samplerate on their displays. If I understand well, some of these output modes just don't allow that. Does any of you know more about this ? ;)


Line 15 is there to explain why line 10 shouldn't be understood in the way you maybe did. I thought that was obvious. Sorry if it wasn't. :confused:

I think you need to worry first and foremost whether your signal path will work, 4 channels to 2 eq settings to 2 dacs. I would worry less about what the bit depth /sample rate of the signal is when the DACs receive it.

As others have said, by virtue of adding eq you will already have up sampled then downsampled in the chain so whether it arrives at the dac at native rates or anything up to DAC max rates is largely irrelevant.
 
OP
Jose Hidalgo

Jose Hidalgo

Addicted to Fun and Learning
Joined
Aug 15, 2020
Messages
961
Likes
1,032
Location
France
I think you need to worry first and foremost whether your signal path will work, 4 channels to 2 eq settings to 2 dacs.
It does already. As we speak, one of my foobar configs is outputting a 4-channel audio with EQ1 on ch1&2 and EQ2 on ch3&4. As for splitting a multichannel audio and directing it to two different soundcards (DACs), that's something people have been able to do on Windows for a very long time thanks to tools like ASIO4ALL. It's not precisely cutting-edge stuff.
 

Jimbob54

Grand Contributor
Forum Donor
Joined
Oct 25, 2019
Messages
11,111
Likes
14,774
It does already. As we speak, one of my foobar configs is outputting a 4-channel audio with EQ1 on ch1&2 and EQ2 on ch3&4. As for splitting a multichannel audio and directing it to two different soundcards (DACs), that's something people have been able to do on Windows for a very long time thanks to tools like ASIO4ALL. It's not precisely cutting-edge stuff.

So the missing piece for you is getting that pair of signals to the DACs bit perfect (so if you switched EQ off it would be native signal)?
 

hege

Senior Member
Forum Donor
Joined
Dec 25, 2018
Messages
466
Likes
821
Location
Finland
The only simplification here would be replacing the two DACs by a single multichannel DAC. That would eliminate the ASIO4ALL part. But since multichannel DACs are way too expensive, that won't happen either. The only three things that may change are :
  1. The EQ1/EQ2 part taking place either within foobar2000 or via a separate Windows app (EAPO, a VST Host/Plugin, whatever)
    (currently it already works within foobar2000 via convolution)
  2. foobar2000's output mode (ASIO, KS, WASAPI, DirectSound)
  3. ASIO4ALL being replaced by another app

Well if your current setup works for you, I'm not sure why you want to change things then? The way you approached this thread makes it impossible not go to "off-topic".

If you want to change things but keep Foobar2000 as player, my advice still stands. JRiver also provides ASIO endpoint (the virtual sound card also accepts WASAPI Exclusive), so you could also do Foobar2000 -> ASIO/WASAPI -> JRiver(Zones+EQ) -> ASIO/WASAPI -> DACs.
 
Last edited:

Jimbob54

Grand Contributor
Forum Donor
Joined
Oct 25, 2019
Messages
11,111
Likes
14,774
Well if your current setup works for you, I'm not sure why you want to change things then? The way you approached this thread makes it impossible not go to "off-topic".

If you want to change things but keep Foobar2000 as player, my advice still stands. JRiver also provides ASIO driver (the virtual sound card also accepts WASAPI Exclusive), so you could also do Foobar2000 -> ASIO/WASAPI -> JRiver(Zones+EQ) -> ASIO/WASAPI -> DACs.

I think its because the Foobar EQ solution isnt easily editable as it is convolution based rather than PEQ. But digital nervosa sets in about using EAPO or other EQ that doesnt use ASIO or other bit perfect inputs. But I agree, I am far from sure what the problem to be solved is. I would just want a simple life and stump up for JRiver or something similar (which in fact I have- Roon)
 

hege

Senior Member
Forum Donor
Joined
Dec 25, 2018
Messages
466
Likes
821
Location
Finland
I think its because the Foobar EQ solution isnt easily editable as it is convolution based rather than PEQ.

If the ASIO4ALL works decendly (it might do things like truncate stuff to 16-bit? hello nervosa :)), it's still probably easier to manage solution than my JRiver advice. I think @Jose Hidalgo should have started a thread for guidance on how to make the convolution files easier, there are many ways to automate it.
 

hege

Senior Member
Forum Donor
Joined
Dec 25, 2018
Messages
466
Likes
821
Location
Finland
Btw JRiver WDM driver is sometimes iffy to get working without glitches, but you could even stream to JRiver directly with UPnP. I just tried foo_out_upnp and it streams fine. :) So "apps talking" is not limited to hardware audio protocols, you can also use UPnP/DLNA for their communication.
 
OP
Jose Hidalgo

Jose Hidalgo

Addicted to Fun and Learning
Joined
Aug 15, 2020
Messages
961
Likes
1,032
Location
France
So the missing piece for you is getting that pair of signals to the DACs bit perfect (so if you switched EQ off it would be native signal)?
Exactly :) If the EQ part is done within foobar (like it's already the case), then it makes sense to want the EQed signal to go straight from foobar to the DACs without any alteration. Which should be the case with ASIO4ALL, which BTW supports resolutions up to :
  • 32-bit, including 24-bit (see quote below)
  • At least 192 KHz (maybe more, I couldn't find the exact info, but 192 is for sure, and I don't have anything higher in my music library anyway)
1.2 (Jan 15th 2004)
Add support for 24bit packed PCM sample format (vs. 32bit), which should resolve an issue with >16bit devices that do not support 32bit PCM output.
Source : http://www.asio4all.org/history.html
So, not exactly nervous here. ;)

Well if your current setup works for you, I'm not sure why you want to change things then?
For two reasons : a little bit because I'm a perfectionist, and most of all for ease of use, because it's easier to modify a PEQ in real time than to modify an impulse response and feed it to a convolution plugin (I know how to do it fairly quickly, but modifying a PEQ will always be quicker). But if improving my current setup proves too complicated/unstable, I'll stick with convolution.

I understand Jimbo's philosophy (get a Roon license - stick with it - no worries), and I think it's great :D Maybe one day I'll end up with Roon, but for the moments I see things differently. It's like two different people : one sticking with pretty/functional MacOS, and the other sticking with Linux and its command line stuff (I'm not a Linux guy, it's just to illustrate a point).

you could also do Foobar2000 -> ASIO/WASAPI -> JRiver(Zones+EQ) -> ASIO/WASAPI -> DACs.
Yes, that was already suggested in another thread (but you couldn't know of course), and it's actually comforting, because if nothing else worked in the long run with ASIO4ALL & co., I'd still have JRiver as a last resort (via ASIO/WASAPI or via UPnP). Of course I'd need to buy a JRiver license and use it merely as a PEQ/Splitter. I think I can do better than that.

So you see, it all comes back to ASIO4ALL or any equivalent. Hence point 3 of my previous post. ;) That's all I was saying, and that is what I need to test thoroughly over the following weeks :
  • On one hand ASIO4ALL seems to be rock-solid and it has been around for a long time, but it's only that : a driver.
  • On the other hand, solutions like DDMF Virtual Audio Stream seem to also act as VST Hosts, which would allow me to take the EQ part out of foobar and use any VST PEQ I'd like instead of resorting to convolution. So that would be ideal, IF I could make it work.
We'll see. :)
 
OP
Jose Hidalgo

Jose Hidalgo

Addicted to Fun and Learning
Joined
Aug 15, 2020
Messages
961
Likes
1,032
Location
France
I would be nervous
I wouldn't :
This is a new problem that did not exist until a few weeks ago. So I have to believe Microsoft has changed something to cause this incompatibility.

I have reached out to author of ASIO4ALL and my contacts at Microsoft. Something has changed in the latest update of Windows to break this compatibility.
Since I'm using either Windows 7 or Windows 8.1 for the moment, and have also disabled MS "updates", I don't think I'm concerned. And by the time I am, I suppose ASIO4ALL will have been fixed to accommodate MS' new excentricities affecting their audio layer.

Nice try though. ;)

giphy.gif
 

Jimbob54

Grand Contributor
Forum Donor
Joined
Oct 25, 2019
Messages
11,111
Likes
14,774
I wouldn't :

Since I'm using either Windows 7 or Windows 8.1 for the moment, and have also disabled MS "updates", I don't think I'm concerned. And by the time I am, I suppose ASIO4ALL will have been fixed to accommodate MS' new excentricities affecting their audio layer.

Nice try though. ;)

giphy.gif

That was from 2018 too.
 
Top Bottom