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

bennetng

Major Contributor
Joined
Nov 15, 2017
Messages
1,634
Likes
1,693

edechamps

Addicted to Fun and Learning
Forum Donor
Joined
Nov 21, 2018
Messages
910
Likes
3,621
Location
London, United Kingdom
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.

Yes, that's a fundamental difference between floating point and integer representation of audio samples. In integer audio, the signal is expected to span the entire range of possible values (e.g. -32768 to +32767 for 16-bit integer), and 0 dBFS is at the extremes of that range. In floating point the convention is different: 0 dBFS is ±1.0, but IEEE 32-bit float can represent numbers much larger than this. This leads to the somewhat surprising conclusion that 32-bit float can represent signals above 0 dBFS without clipping. Most digital processing doesn't actually care about the absolute scale and will thus process such "out-of-range" samples just like any other sample. But of course, as soon as one wants to convert to integer, one has to clamp the samples to the ±1.0 range (by convention) in order to map it to the integer scale, and that's where clipping can occur.

The ability for 32-bit float samples to exceed 0 dBFS makes them a very convenient choice for implementing digital filter chains, because that means near-infinite headroom - thus, one doesn't have to care about clipping occurring in the middle of the chain. IMHO, it makes sense for software to operate in 32-bit float right up to the DAC, and this is exactly what foobar, Windows and Equalizer APO are doing in your experiment.
 

bennetng

Major Contributor
Joined
Nov 15, 2017
Messages
1,634
Likes
1,693
The reported issues without using ASIO or WASAPI exclusive mode are mostly related to the playback software, could be the limitation of the software itself, or user settings, for example like this:
https://www.audiosciencereview.com/...ents-of-chromecast-audio-digital-output.4544/
index.php

Some people think these artifacts are jitter, and they are obviously not.
 

daftcombo

Major Contributor
Forum Donor
Joined
Feb 5, 2019
Messages
3,688
Likes
4,069
-4dB in EqAPO is good enough it you play only something in Foobar, in Youtube or any player.
But if you play something in two players at the same time, is it enough? (For example: music in Foobar + video in Youtube).

WIthout EqAPO on, I checked in Audacity: 80% in Youtube and -4dB in Foobar at the same time: 0dB was reached.
With 50% volume in Youtube and -8dB in Foobar, I stay under -2dB or so.
Windows 10 volume has no consequence on that (at least with an Audioengine D3).
 

Offler

Senior Member
Joined
May 27, 2021
Messages
414
Likes
400
Something that is related to the Windows Audio Quality discussion...
https://forums.guru3d.com/threads/w...ge-signaled-based-interrupts-msi-tool.378044/

There are three modes in which PCI-E devices may communicate with the rest of the system.
a) Line-Based Interrupts
b) Message Based Interrupts (MSI for short)
c) MSI-X

Then there are two types of interrupts, high priority ISR calls and low priority DPC calls.

The question was "Can Message Based Interrupts improve your sound latency?"

Usually, audio devices are using older type of Line-Based Interrupts and are allowed to perform ISR calls.

This can be checked in a simple way in Device Manager where 'High Definition Audio Controller' does not have assigned a negative number as an IRQ and by LatencyMon tool:
https://www.resplendence.com/latencymon
Which will report ISR calls for either mouse, keyboard or HDAud.sys.

This can be changed by registry editing, or by tools in first link I provided. I did test it and here are the results when i enabled Message-Based Interrupts.

a) HDAud.sys no longer uses ISR calls.
b) Average time used by HDAudSys decreased from 13 microseconds to just 3-6 microseconds.
c) Certain applications which play audio may introduce short periods, where sound was looped.
d) Wasapi Exclusive mode does seem to work but .

Conclusion:
Line-Based interrupts for your audio driver maybe are considered to be legacy, and take higher amount of calls and CPU time, but they apparently have higher priority and prevent jitter.
 

Davide

Senior Member
Joined
Jul 6, 2020
Messages
468
Likes
175
Location
Milan, Italy
Sorry but I didn't understand if the WASAPI exclusive mode is affected by limiter issue... or other issues...
I think to understand that the only problem it suffer from is resampling, but only if source material is different from audio device setting.
I'm correct?
 

edechamps

Addicted to Fun and Learning
Forum Donor
Joined
Nov 21, 2018
Messages
910
Likes
3,621
Location
London, United Kingdom
Sorry but I didn't understand if the WASAPI exclusive mode is affected by limiter issue... or other issues...
I think to understand that the only problem it suffer from is resampling, but only if source material is different from audio device setting.

WASAPI Exclusive is not affected by limiting, does not mix, does not run APOs and does not resample even if the sample rate is different from the one configured in the Windows audio device settings (hint: if you go to that setting, you'll notice it explicitly says it applies to shared mode only). WASAPI Exclusive is essentially bit-perfect with the audio application delivering the samples directly to the DAC (or at the very least directly to the driver).
 

diyaudnut

Member
Joined
Jul 21, 2018
Messages
39
Likes
12
WASAPI Exclusive is not affected by limiting, does not mix, does not run APOs and does not resample even if the sample rate is different from the one configured in the Windows audio device settings (hint: if you go to that setting, you'll notice it explicitly says it applies to shared mode only). WASAPI Exclusive is essentially bit-perfect with the audio application delivering the samples directly to the DAC (or at the very least directly to the driver).
The Amazon music HD app on PC isn't really using this mode even with its exclusive option. The sample rate that I see on my physical DAC is always fixed at what the shared mode window setting is.
On the other hand Jriver directly changes the DAC sampling rate based on the track using its ASIO driver.
 

Davide

Senior Member
Joined
Jul 6, 2020
Messages
468
Likes
175
Location
Milan, Italy
The Amazon music HD app on PC isn't really using this mode even with its exclusive option. The sample rate that I see on my physical DAC is always fixed at what the shared mode window setting is.
On the other hand Jriver directly changes the DAC sampling rate based on the track using its ASIO driver.

My question indeed is related to using Amazon Music HD in exclusive mode. Also I find that the sample rate is predefined by the Windows output device setting, so resampling is happening somewhere if source material differs. This is evidenced by the fact that if I play 96khz or other music from Amazon (with exclusive mode active), the DAC always indicates 44.1khz.
But I think it's a problem (or limitation) of the WASAPI exclusive mode rather than Amazon Music.
A problem with Amazon rather is the fact that in exclusive mode it shows me as available output devices twice the same name. I believe this is because there is the possibility to select push or event mode, but it's not indicated in the name...
 
Last edited:

kidoman

Member
Joined
Aug 13, 2021
Messages
6
Likes
0
I am using a Topping D30 Pro connected to my Windows 10 desktop using USB.

On EAPO, this is what I see:

1629907111199.png


The options to "Use original APO" are disabled. I can also see that they are not ticked. Does this mean I am good? I am using the Topping provided usb drivers (v5.20).
 

Offler

Senior Member
Joined
May 27, 2021
Messages
414
Likes
400
Been playing around with dual-sine and EQ APO and found this:

50Hz sinewave is having alot of loud harmonics which affected second sine at 7kHz.
test301.jpg


So I opened EQ APO and started to lower the gain and at -6.30dB for both waves result was this:
test302.jpg


I tried to repeat it several times... This happenned when I enabled EQ APO preamp at -6.3db. Wave at the small top graph first shinks at the exact moment when I lowered gain, and then gradually expanded. To me it looks like CAudio limiter. I am still testing it. (And no, I dont have any sort of Automatic Gain Control enabled)
test303.jpg


I will probably try different gains for 50Hz sinewave.
 

daftcombo

Major Contributor
Forum Donor
Joined
Feb 5, 2019
Messages
3,688
Likes
4,069
The options to "Use original APO" are disabled. I can also see that they are not ticked. Does this mean I am good? I am using the Topping provided usb drivers (v5.20).
Same for me with Focusrite Scarlett 2i4 2nd Gen. I assumed it meant it was ok.
 

kidoman

Member
Joined
Aug 13, 2021
Messages
6
Likes
0
Same for me with Focusrite Scarlett 2i4 2nd Gen. I assumed it meant it was ok.
Would be great if we could verify it in some way.

Maybe the driver is already taking care of disabling the original APOs. TBH, i dont enough and am just spit balling.
 

daftcombo

Major Contributor
Forum Donor
Joined
Feb 5, 2019
Messages
3,688
Likes
4,069
Been playing around with dual-sine and EQ APO and found this:

50Hz sinewave is having alot of loud harmonics which affected second sine at 7kHz.
View attachment 149449

So I opened EQ APO and started to lower the gain and at -6.30dB for both waves result was this:
View attachment 149450

I tried to repeat it several times... This happenned when I enabled EQ APO preamp at -6.3db. Wave at the small top graph first shinks at the exact moment when I lowered gain, and then gradually expanded. To me it looks like CAudio limiter. I am still testing it. (And no, I dont have any sort of Automatic Gain Control enabled)
View attachment 149452

I will probably try different gains for 50Hz sinewave.
Why -6.3dB and not -1dB for instance?

Edit: I understand that -6.3dB is the loudest level without distortion showing. Weird, as OP wrote -0.12 dBFS should be enough to get rid of distortion spray. Perhaps everyone should do the same test as you did to know the appropriate value to use with their system?

But what is the third graph? I don't get it.
 
Last edited:

Katji

Major Contributor
Joined
Sep 26, 2017
Messages
2,990
Likes
2,273
Last edited:

Offler

Senior Member
Joined
May 27, 2021
Messages
414
Likes
400
Why -6.3dB and not -1dB for instance?

Edit: I understand that -6.3dB is the loudest level without distortion showing. Weird, as OP wrote -0.12 dBFS should be enough to get rid of distortion spray. Perhaps everyone should do the same test as you did to know the appropriate value to use with their system?

But what is the third graph? I don't get it.
And I confirmed his findings by using 1KHz sinewave. For me it was -0,12dB as a threshold value while I have been using -0,14dB for last few months.

But clearly its different when two sinewaves are used, or on lower or higher frequencies.

Third graph shows transition between -0,14dB and -6,3dB. As you check the wave at the upper (small) graph, you can notice it was smaller shortly after, and then increased in amplitude.

Also you might note that 50Hz and 7000Hz both peak at the same value (around -7dB) on both FFT graphs.
 

daftcombo

Major Contributor
Forum Donor
Joined
Feb 5, 2019
Messages
3,688
Likes
4,069
And I confirmed his findings by using 1KHz sinewave. For me it was -0,12dB as a threshold value while I have been using -0,14dB for last few months.

But clearly its different when two sinewaves are used, or on lower or higher frequencies.

Third graph shows transition between -0,14dB and -6,3dB. As you check the wave at the upper (small) graph, you can notice it was smaller shortly after, and then increased in amplitude.

Also you might note that 50Hz and 7000Hz both peak at the same value (around -7dB) on both FFT graphs.
I don't understand. I see the small graph with the wave becoming smaller in amplitude, then high again. But what does it mean?

Is the big graph the sum of all the values recorded during the gain changing process, or an instant picture?
 
Last edited:

kidoman

Member
Joined
Aug 13, 2021
Messages
6
Likes
0
And I confirmed his findings by using 1KHz sinewave. For me it was -0,12dB as a threshold value while I have been using -0,14dB for last few months.

But clearly its different when two sinewaves are used, or on lower or higher frequencies.

Third graph shows transition between -0,14dB and -6,3dB. As you check the wave at the upper (small) graph, you can notice it was smaller shortly after, and then increased in amplitude.

Also you might note that 50Hz and 7000Hz both peak at the same value (around -7dB) on both FFT graphs.
I will try and ask the author of EAPO as well.
 
Top Bottom