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

outerspace

Active Member
Joined
Aug 18, 2020
Messages
111
Likes
76
I have made sound file (high frequency noise with -0.01 dB peaks) to test clipping and found out Graphic EQ in Equalizer APO causes crackle sound in DirectSound mode. I can't fix it with pre-gain or any other settings. I'm confused and will keep searching. You can try to test it too if you use Graphic EQ.

https://drive.google.com/file/d/1OzEJWi7gUZBSaQHHRov07nZoF6tj27Op/view?usp=sharing

UPD: Using equivalent equalization settings constructed by peaking filters totally fix the problem. There is something wrong with Graphic EQ in Equalizer APO for sure.
 
Last edited:

Katji

Major Contributor
Joined
Sep 26, 2017
Messages
2,990
Likes
2,273
View attachment 111646
If you click the "Modes" button, even a Realtek will show IEEE float. The "Modes" button shows the formats supported by the Windows Mixer. If a non-virtual, kernel mode ASIO driver supports float, then it means there is a possibility to set the global volume via the product's dedicated mixer to avoid clipping and limiting even when the DAW/playback software is outputting 0dBFS+ data via ASIO.
Sorry, I never did get back. I did look at the ASIO button dialog, nothing interesting/unusual, quite similar to the example posted before. but then i thought the [modes] button applied to whatever I'd selected in the device drop-down. hahah So then I went looking at the TI DAC datasheet. :)
 

MiradoOne

Member
Forum Donor
Joined
Jan 13, 2021
Messages
25
Likes
32
I have made sound file (high frequency noise with -0.01 dB peaks) to test clipping and found out Graphic EQ in Equalizer APO causes crackle sound in DirectSound mode. I can't fix it with pre-gain or any other settings. I'm confused and will keep searching. You can try to test it too if you use Graphic EQ.

https://drive.google.com/file/d/1OzEJWi7gUZBSaQHHRov07nZoF6tj27Op/view?usp=sharing

UPD: Using equivalent equalization settings constructed by peaking filters totally fix the problem. There is something wrong with Graphic EQ in Equalizer APO for sure.

Hmm, the file you posted sounds exactly the same to me (minus the volume difference from the pre-amp) whether or not I have EAPO enabled. I can't tell if that means everything is working as intended or if everything is wrong, DirectSound included. Would it be possible for you to record the clipping so we can compare it working properly vs what you hear with EAPO enabled? I'd like to see if I have some fundamental underlying problem that isn't caused by EAPO or if I somehow am just not experiencing what you are with it on.
 

outerspace

Active Member
Joined
Aug 18, 2020
Messages
111
Likes
76
Hmm, the file you posted sounds exactly the same to me (minus the volume difference from the pre-amp) whether or not I have EAPO enabled. I can't tell if that means everything is working as intended or if everything is wrong, DirectSound included. Would it be possible for you to record the clipping so we can compare it working properly vs what you hear with EAPO enabled? I'd like to see if I have some fundamental underlying problem that isn't caused by EAPO or if I somehow am just not experiencing what you are with it on.
The problem appears if I add and activate Graphic EQ filter (15 or 31-band EQ) even when all settings are set to zero. This clipping is very obvious (sounds like crackle and clicks). If this file sound same through ASIO (or WASAPI exclusive) and DirectSound when all OK, nothing to worry about and problem is on my side only.
 
Last edited:

Jose Hidalgo

Addicted to Fun and Learning
Joined
Aug 15, 2020
Messages
961
Likes
1,032
Location
France
Hi, and first of all, congratulations to DDF for a most excellent post. I guess he cracked the Da Windows Code ! :D

I have two questions, and both are related to this sentence from the OP :
Install Equalizer APO and use it to disable original APOs and set EAPO's preamp gain at ~ -4 dB to avoid upsample overs, filtering induced peaks, and the Windows CAudioLimiter
  1. About disabling original APOs, in my case, everything is greyed out. What can I do ?

    2021.03.08 - 02.09.30.png


  2. About preamp gain, let's assume I already have an EQ preset (e.g. an Oratory preset) with a negative gain of -5 dB. Should I cumulate both gains on EAPO ? Global gain (-4 dB) + EQ gain (-5 dB) = -9 dB ?
Thanks !
 

companyja

Active Member
Joined
Apr 26, 2020
Messages
151
Likes
172
Hi, and first of all, congratulations to DDF for a most excellent post. I guess he cracked the Da Windows Code ! :D

I have two questions, and both are related to this sentence from the OP :

  1. About disabling original APOs, in my case, everything is greyed out. What can I do ?

    View attachment 116890

  2. About preamp gain, let's assume I already have an EQ preset (e.g. an Oratory preset) with a negative gain of -5 dB. Should I cumulate both gains on EAPO ? Global gain (-4 dB) + EQ gain (-5 dB) = -9 dB ?
Thanks !

This is a bit late, but from my understanding:

1) Your device's original driver didn't have custom APOs, just installing EQ APO's APO is the same as unchecking those boxes. My E30 also didn't have addiitonal APOs, my portable Fiio X3 III did, for example

2) For the exact same protection against IMD, you would need to stack the negative preamps so that with all EQ taken into account, you still have another -4dB of headroom. However, from what I understand IMD is most likely to be audible in the upper frequencies so if you're boosting low-end with the EQ for example, it's really not that important to put further negative preamp
 

dgnzcn

Active Member
Joined
Feb 24, 2021
Messages
139
Likes
24
Location
Turkey
Why are the related settings not enabled for me?
 

Attachments

  • Ekran görüntüsü 2021-03-22 112609.jpg
    Ekran görüntüsü 2021-03-22 112609.jpg
    44 KB · Views: 231

jaytrinitron

Member
Joined
Jan 27, 2018
Messages
40
Likes
4
Hi all,
so I've been reading through the thread, and these are what I'm currently doing. Does it make sense? My DAC is a Schiit Modi 3 +, with AKM AK4490:
DAC has 32 bit input so windows sample rate is set to 32-bit, 48khz (since 48khz is the highest sample rate any audio is played at. I don't do 96khz since I don't playback any audio with that high of a sample rate).
In Equalizer APO I have a -2dB pregain before my EQ, since apparently per this thread AKM DACs have 2dB headroom already, so 4dB total.
In foobar2000, my output is set to wasapi exclusive (verified this bypasses windows) at 32-bit bit depth. I think this is the right bit depth since it is the maximum my DAC takes and is the same bit depth as windows. I use foo_convolve to import my EQ as a 32-bit float, 44.1khz impulse response .wav file. I do not auto adjust, as for some reason this can cause music to clip. Most of my music is 16bit, 44.1khz, a small amount is 24-bit, and a smaller amount still has a sample rate above 44.1KHz but if that's the case I just resample. In foobar2000, I do no volume attenuation of any kind and just output in full. This is because my impulse response seems to attenuate volume by a few dB automatically, much more than my EQ in equalizerAPO. I asked why here and someone said it was because impulse response .wav's have an embedded -6dB pregain, though I'm not sure how true that is and it doesn't make much sense to me as to why that would be there, so if possible an explanation would be nice.
 

Jose Hidalgo

Addicted to Fun and Learning
Joined
Aug 15, 2020
Messages
961
Likes
1,032
Location
France
If most of your music is 44.1 (like it's the case for most people) then you should definitely set Windows sample rate to 44.1, not to 48.
44.1 doesn't play well with 48 and vice-versa, because one isn't a multiple of the other.
 

raistlin65

Major Contributor
Forum Donor
Joined
Nov 13, 2019
Messages
2,279
Likes
3,421
Location
Grand Rapids, MI
Thanks for this. I much prefer to leave Windows in shared mode. Rather than having MusicBee hold onto the audio exclusion even when I'm not using it. Gets annoying when I go to play a YouTube video, and it won't play until I go back and close out MusicBee.
 

jaytrinitron

Member
Joined
Jan 27, 2018
Messages
40
Likes
4
If most of your music is 44.1 (like it's the case for most people) then you should definitely set Windows sample rate to 44.1, not to 48.
44.1 doesn't play well with 48 and vice-versa, because one isn't a multiple of the other.
Well I thought 48 would be fine because the OP recommends setting a higher sample rate if you playback high res material. I don't have any 96khz music, but I do have 48 so that's what I set. Also most of my 44.1khz music is played through foobar and WASAPI exclusive where the windows mixer is bypassed, but I have other media that is mostly 48khz that doesn't play via wasapi exclusive.
 

Jose Hidalgo

Addicted to Fun and Learning
Joined
Aug 15, 2020
Messages
961
Likes
1,032
Location
France
Well I thought 48 would be fine because the OP recommends setting a higher sample rate if you playback high res material. I don't have any 96khz music, but I do have 48 so that's what I set. Also most of my 44.1khz music is played through foobar and WASAPI exclusive where the windows mixer is bypassed, but I have other media that is mostly 48khz that doesn't play via wasapi exclusive.
I guess there are three ways of assessing this :
  • People who think that resampling is good (we could debate on what "good" really means) and that it actually improves music :facepalm:
  • People who don't mind resampling (nor good nor bad). I guess the OP would fall in this category.
  • People who think that resampling should be avoided as much as possible, at least for peace of mind
If you use Win 10 latest revision, feel free to do as the OP says if you wish. It won't be "bitperfect" (because, resampling) but you won't notice the difference. Me, I still use Win 7 in one of my PCs, so I'm keeping 44.1 as sample rate. Maybe I'll switch to 192 someday in the other PC that runs Win 10. I'm sure I won't hear the difference either, plus only 1% of my files are hi-res (> 48 KHz), so...
 

kernelpanic

Member
Joined
Mar 19, 2019
Messages
56
Likes
34
Thanks @DDF for this amazing analysis! Two quick follow up questions after reading through the thread:

1. There seems to be some contention between -.2db and -4db. Is the goal to get the peak gain from EQ APO to be -0.2 or -4.0 after any filters to avoid the limiter?
2. You suggested using 96khz if setting to something above 44khz. Any reasoning for this instead of 192khz? Or instead of 88.2 as it is a multiple of 44.1?
 
OP
DDF

DDF

Addicted to Fun and Learning
Joined
Dec 31, 2018
Messages
617
Likes
1,355
Thanks @DDF for this amazing analysis! Two quick follow up questions after reading through the thread:

1. There seems to be some contention between -.2db and -4db. Is the goal to get the peak gain from EQ APO to be -0.2 or -4.0 after any filters to avoid the limiter?
2. You suggested using 96khz if setting to something above 44khz. Any reasoning for this instead of 192khz? Or instead of 88.2 as it is a multiple of 44.1?

Thanks @kernelpanic

Use -4dB as peak gain. This adds margin for any upsampling in the dac chip, and for any changes in the waveform envelope amplitude caused by the filter phase response. I tested -0.2dB first just to illustrate CAudiolimiter's threshold value.

I tested 96 kHz only with good results so don't really see any advantage to using 88.2. I hadn't tested 192 as my maximum file sample rate is 96.
 

Monstieur

Active Member
Joined
Feb 3, 2020
Messages
112
Likes
46
Does it matter whether I use the pre-mix or post-mix stage for -4 dB pre-amp in Equalizer APO? Is WASAPI clipping from 32-bit float track decoding and CAudioLimiter avoided in both cases?

Does IAudioClient::GetMixFormat always return 32-bit float for WASAPI shared mode if the mixer runs in 32-bit float internally? The source application must resample to a the mix format or use a format supported by IAudioClient::IsFormatSupported.

iTunes has an setting for set 24-bit output. It's not clear what this does in WASAPI mode. Does it call IAudioClient::IsFormatSupported for 24-bit, and output 24-bit if supported? If this is the case then 32-bit float decoding clipping cannot be avoided as iTunes has already resampled to 24-bit. If 24-bit is not supported in shared mode, then iTunes will be forced to output 32-bit float.

Looking at a screenshot of Quicktime where you can choose WASAPI or DirectSound, the sample rate and bit-depth settings are disabled when selecting WASAPI. If iTunes behaves the same internally the bit-depth setting might be ignored when using WASAPI, implying 32-bit float is probably used.
 
Last edited:

voltronic

Member
Joined
May 19, 2021
Messages
38
Likes
24
Pardon me if this isn't exactly on-topic, but is there any other system-wide EQ for Windows that will work with ASIO? One of my use cases is one I have not seen mentioned yet, which is playing VST instruments via a MIDI controller. Only ASIO has low enough latency for me, but I would love to have global EQ for my HD650s as I bounce between different audio production and editing apps. Using DirectSound for this makes playing my virtual piano feel like playing organ in a large gothic cathedral.
 

companyja

Active Member
Joined
Apr 26, 2020
Messages
151
Likes
172
Pardon me if this isn't exactly on-topic, but is there any other system-wide EQ for Windows that will work with ASIO? One of my use cases is one I have not seen mentioned yet, which is playing VST instruments via a MIDI controller. Only ASIO has low enough latency for me, but I would love to have global EQ for my HD650s as I bounce between different audio production and editing apps. Using DirectSound for this makes playing my virtual piano feel like playing organ in a large gothic cathedral.

To my knowledge, the thing that allows EQ APO to work is that microsoft has added APO support to DirectSound - so you can modify or add audio processing units before or after the mixdown. I'm not aware of any ASIO drivers that support APOs, however there are ASIO drivers that will include their output in the mixdown rather than using exclusive mode - for example, FL Studio's recent-ish ASIO driver will react to EQ APO settings. I suppose you just have to try and see which ASIO driver will allow you to do this. ASIO4ALL notoriously ran in exclusive mode in the past, not sure if it can go through the mixer now
 
Top Bottom