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

companyja

Active Member
Joined
Apr 26, 2020
Messages
151
Likes
172
Does anyone know whether pre-mix or post-mix APO alters anything? I for example often play video games and play music at the same time so if I stick my volume at 100% in windows which I do, I like to use a pre-mix APO for my negative preamp since that then creates additional headroom for the mixdown against hitting 0dB RMS and having to engage CAudioLimiter when combining the signals. But I then switch to post-mix for my equalization, no need to equalize every program individually. EQ APO however doesn't seem to analyze pre-mix audio output on its visualizer, so just to be safe I apply a negative preamp, and then another one in the post-mix just so the signal doesn't look like it's clipping. Am I safe with only applying negative pre-amp no matter what EQ APO thinks is happening, will this avoid the limiter even if I boost things by as much as 6dB in the post-mix if the pre-mix has a negative preamp of let's say -10dB?
 

bennetng

Major Contributor
Joined
Nov 15, 2017
Messages
1,634
Likes
1,693
Since the wave itself is clipping, you can see that the volume mixer in EQ APO lowered the amplitude in shared mode.
The wave is not clipped. Convert the file to 32-bit .wav as shown in this post:
https://www.audiosciencereview.com/...table-field-recorder-review.15668/post-514827
Then open the file in Audacity or other DAWs, reduce 12dB and you can fully recover the waveform.
It is what foobar's built-in volume does, as well as some other media players like HPC-HC do.
 

Offler

Senior Member
Joined
May 27, 2021
Messages
414
Likes
400
Very interesting, thank you.

I think I'll stick to -4.0 dB in EqAPO (as OP recommended) and 100% on Windows from on, except to use with devices without volumes control.
I will definitely do some cross-tests because OPT and AUX had completely different sound, and I originally attributed that to internal DAC in d3020v2.

Also -0,14dB might work just for my specific setup, and probably only for OPT, also because my tools are not very accurate (0,02dB accurancy in windows, and much less on volume control of the amp).

Aux output definitely caused trouble at -3,74dB, so -4dB would be safe for most configurations


The wave is not clipped. Convert the file to 32-bit .wav as shown in this post:
https://www.audiosciencereview.com/...table-field-recorder-review.15668/post-514827
Then open the file in Audacity or other DAWs, reduce 12dB and you can fully recover the waveform.
It is what foobar's built-in volume does, as well as some other media players like HPC-HC do.

I just compared how the file is played in Foobar and PowerDVD. The output on oscilloscope is completely different. Foobar is capable to recover everything, even at 0,0db shared.

I have PowerDVD as a default (to view DVD menus and bonuses), for real watching I prefer MPC-HC. So thanks for pointing this out.
 

bennetng

Major Contributor
Joined
Nov 15, 2017
Messages
1,634
Likes
1,693
I believe more to my eyes, than to my ears
BTW, I reported the limiter issue many years ago, for example, in 2013, when DS was still the default output in foobar.
https://hydrogenaud.io/index.php?topic=104051.msg854152#msg854152
Not because I measured or saw the waveform, but because I heard it, clearly, back to the time when I switched from Windows XP to Windows 7. I am also the first one to mention CAudioLimiter in ASR if you search the forum.
 

daftcombo

Major Contributor
Forum Donor
Joined
Feb 5, 2019
Messages
3,688
Likes
4,069
Question: I use convolver in Foobar2000 to put a high-pass filter. Default ouput is selected (so WASAPI shared).
I put -4dB in EqAPO to prevent clipping due to phase rotations due to the filter.
Is it safe, or should I put -4dB directly in the file I convolve?
 

Offler

Senior Member
Joined
May 27, 2021
Messages
414
Likes
400
BTW, I reported the limiter issue many years ago, for example, in 2013, when DS was still the default output in foobar.
https://hydrogenaud.io/index.php?topic=104051.msg854152#msg854152
Not because I measured or saw the waveform, but because I heard it, clearly, back to the time when I switched from Windows XP to Windows 7. I am also the first one to mention CAudioLimiter in ASR if you search the forum.
By 1996 was expected that "audio accelerator" will be a thing in a similar way as 3dfx launched their Voodoo cards.

When Vista was released it was clear that it will never happen and they removed all support for EAX. EAX allowed post effects, hardware volume controls, hardware equalizer and such thing. whole audio stack was simplified and reduced.

Since Vista the windows sound subsystem is still called "DirectSound" but most cards are just a plain DAC, with software controls, mixers, effects and equalizers. You can have those things on more expensive soundcards, but its no longer a standard which can be used for example by game developers.
 

bennetng

Major Contributor
Joined
Nov 15, 2017
Messages
1,634
Likes
1,693
Question: I use convolver in Foobar2000 to put a high-pass filter. Default ouput is selected (so WASAPI shared).
I put -4dB in EqAPO to prevent clipping due to phase rotations due to the filter.
Is it safe, or should I put -4dB directly in the file I convolve?
To play safe, just lower foobar's built in volume control. With foobar's WASAPI shared output, foobar's built-in volume control can prevent any form of limiting or clipping provided that the attenuation is adequate, regardless of using EQ APO or not.
 

daftcombo

Major Contributor
Forum Donor
Joined
Feb 5, 2019
Messages
3,688
Likes
4,069
To play safe, just lower foobar's built in volume control. With foobar's WASAPI shared output, foobar's built-in volume control can prevent any form of limiting or clipping provided that the attenuation is adequate, regardless of using EQ APO or not.
It's a solution. But a drawback is that the system volume will be higher than Foobar2000 volume, making it less easy to switch sources.
 

daftcombo

Major Contributor
Forum Donor
Joined
Feb 5, 2019
Messages
3,688
Likes
4,069
A way to test that behaviour would be to put a +3dB in Foobar and a -4 dB in EqAPO and see if there's clipping or no.
 

Marc v E

Major Contributor
Joined
Mar 9, 2021
Messages
1,106
Likes
1,607
Location
The Netherlands (Holland)
@DDF: great post and results! How about testing stock mac os?

I changed from windows to mac in 2006 and noticed how much cleaner it sounded. Would be nice to see an objective measurement.
 

daftcombo

Major Contributor
Forum Donor
Joined
Feb 5, 2019
Messages
3,688
Likes
4,069
Ok, here's what you get with a 100Hz tone to which you apply +6dB in Foobar2000 (I used the Equalizer with +6 dB on the 110Hz bar actually) and -4dB in EqAPO:

1622985305612.png


(I normalized to -1dB after capture).

Now +3dB in Foobar (via Equalizer on 110hz bar) and -4dB in EqAPO:

1622985425275.png


Seems like "it didn't have the time to clip" between Foobar and EqAPO.

To be sure, same +3 dB in Foobar (via Equalizer on 110hz bar) but nothing in EqAPO:

1622985543711.png


Yuk! Is it my eyes or is it even worse than on the first picture?
 

Offler

Senior Member
Joined
May 27, 2021
Messages
414
Likes
400
So, in the end I had to do the following:

1. I calibrated AudioTester and amp using OPT output a 0,0dB.
2. In EQ Apo i selected -0,14dB for Optical to clear the CAudioLimiter distortion.
3. Sweep test confirmed that frequency response is within 0,5db range and distortion/frequency test confirmed that THD is around -80.
4. Then I selected AUX.
5. CAudioLimiter distortion was no longer present by -0,24dB (yes, it was being triggered here, regardlesss OPT was already OK), but the AUX input is due some reason louder, so i was decreasing gain until I got to -4,36dB. At that point the AudioTester was no longer reporting that one of the audio outputs is over the limit.
6. I did again sweep test and distortion/frequency test and THD was nice around -80.

Please note that the following configuration is specific to my system only. It may change if I update sound driver...

wave05.jpg


Pl
 

bennetng

Major Contributor
Joined
Nov 15, 2017
Messages
1,634
Likes
1,693
Ok, here's what you get with a 100Hz tone to which you apply +6dB in Foobar2000 (I used the Equalizer with +6 dB on the 110Hz bar actually) and -4dB in EqAPO:

View attachment 134093

(I normalized to -1dB after capture).

Now +3dB in Foobar (via Equalizer on 110hz bar) and -4dB in EqAPO:

View attachment 134095

Seems like "it didn't have the time to clip" between Foobar and EqAPO.

To be sure, same +3 dB in Foobar (via Equalizer on 110hz bar) but nothing in EqAPO:

View attachment 134096

Yuk! Is it my eyes or is it even worse than on the first picture?
For what you wanted to test, remove all DSP effects in foobar and do this, and don't use a sine wave. Use music files, you can even crank up "Without RG info" to the maximum allowed value (+20dB)
I cannot test it for you, you have to do this to verify the result on your own system.
foo.png
 
Last edited:

daftcombo

Major Contributor
Forum Donor
Joined
Feb 5, 2019
Messages
3,688
Likes
4,069
By the way, I just had the confirmation that putting a high-pass filter at around 40Hz, slope = 96dB/octave increases the track peak volume. I just applied the correction and watched the dBmeters in Audacity (loopback). It was like adding +1.5dB or so. Thankfully I had -4dB in EqAPO.
So be careful if you use a high-pass filter like @amirm does sometimes: it can make your audio clip.
 

daftcombo

Major Contributor
Forum Donor
Joined
Feb 5, 2019
Messages
3,688
Likes
4,069
For what you wanted to test, remove all DSP effects in foobar and do this, and don't use a sine wave. Use music files, you can even crank up "Without RG info" to the maximum allowed value (+20dB)
I cannot test it for you, you have to do this to verify the result on your own system.
View attachment 134097
Just did it. I applied "Without RG info" = 20dB and nothing in APO.
Here's the ugliness:

1622986968521.png


The waveform becomes normal again if I add -25dB in EqAPO though.
 

edechamps

Addicted to Fun and Learning
Forum Donor
Joined
Nov 21, 2018
Messages
910
Likes
3,620
Location
London, United Kingdom
I think Windows audio driver is used along with Equalizer APO. I did a performance comparison between JAVA and ASIO driver in REW for my MOTU M4: You can see the ASIO has better THD+N than JAVA driver. Specifically, ASIO has lower noise.

REW's Java output is somewhat basic - it's limited to 16-bit. The ASIO sample format for your interface is almost certainly better than 16-bit. That would likely explain your results. It's a REW limitation, not a Windows limitation. If you want to run REW through the Windows audio engine with more control over stream format, one solution is to use REW with FlexASIO.
 

edechamps

Addicted to Fun and Learning
Forum Donor
Joined
Nov 21, 2018
Messages
910
Likes
3,620
Location
London, United Kingdom
Now +3dB in Foobar (via Equalizer on 110hz bar) and -4dB in EqAPO:
Seems like "it didn't have the time to clip" between Foobar and EqAPO.

I'm not surprised. Windows does allow applications to feed 32-bit float samples to its audio APIs, and this is likely what foobar2000 is doing since it's The Right Thing To Do if it's doing signal processing - foobar doesn't have to downconvert before handing off the samples to Windows, and so it doesn't.

The Windows audio engine operates in 32-bit float internally, and that applies to APOs that run within it as well. Thus, there is no reason why any sample format conversion would take place between foobar2000 and Equalizer APO - it's 32-bit float all the way down, bit-perfect.

32-bit float allows samples above 0 dBFS (i.e. >1.0). Since they don't get converted to integer, there's no reason why such samples would get truncated. And so Equalizer APO will receive these above-0dBFS samples and happily process them as usual. Hence no clipping takes place - as long as the above-0dBFS samples get attenuated somewhere down the chain before the final conversion to integer for output by the DAC, of course. This is what you observed.

I suspected the chain would work that way but had never verified it to be the case. Thanks for the confirmation!

Haters gonna hate, but I've always believed the "shared" standard Windows audio chain works much better than sceptical "audiophiles" give it credit for. As long as audio device manufacturers don't screw it up with questionable hidden APOs, of course…
 

daftcombo

Major Contributor
Forum Donor
Joined
Feb 5, 2019
Messages
3,688
Likes
4,069
I've been playing music in Foobar for a few hours now, leaving the monitoring vu-meters on in Audacity (loopback recording).

I convolve the music in Foobar to EQ the sound of my Aria 906 and do bass management. The whole curve is under -0.5 dB. There's, as I said before, a high-pass at 46Hz (96dB/oct) to get rid of the lowest room mode and help the woofer.
In addition, I put -4 dB in EqualizerAPO.

So, theorically, music should stay below -4.5 dB all the time. It is not the case, and the peak recorded in Audacity is around -3 dB. I believe that value was reached on very compressed music. I also have a few files with a "true peak" level > 0 dB (+0.2 dB for instance).
 

daftcombo

Major Contributor
Forum Donor
Joined
Feb 5, 2019
Messages
3,688
Likes
4,069
32-bit float allows samples above 0 dBFS (i.e. >1.0). Since they don't get converted to integer, there's no reason why such samples would get truncated.
That is a good behaviour, but I wonder how it works. I imagined the 32bit "depth" was to put more information in the "depths" of the music, very low in level, but definitely not "above the surface". I must have my metaphor wrong.
 

Offler

Senior Member
Joined
May 27, 2021
Messages
414
Likes
400
That is a good behaviour, but I wonder how it works. I imagined the 32bit "depth" was to put more information in the "depths" of the music, very low in level, but definitely not "above the surface". I must have my metaphor wrong.
I got into same problem recently and this gave me the answer.

Since I play DTS-HD MA, which is 6channels 48KHz 24bit integer lossless sound on a stereo setup I need it to downmix before i sent it over toslink - it does not have that much bandwidth.

So I use LAVFilter Audio (part of MPC-HC) which mix it to stereo 48KHz 32bit FLOAT. That should minimize chances of clipping.

Afterwards, its converted to Stereo 48KHz 24bit (padded) and sent over Toslink to external DAC.
 
Top Bottom