• Welcome to ASR. 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!

Let's develop an ASR inter-sample test procedure for DACs!

I actually have two DAC and amp set ups.

1) Topping D50 III into Fosi Audio V3 single ended output

2) SMSL M300 SE into SMSL DA-9 balanced
You can use the DA-9 for both DACs since it has easily reproducible volume settings. You just have to determine at what volume settings the speaker output is the same for a given listening level.
 
So now I have measured the analog RCA output of my Topping E70, which was fed from Wiim ultra WITHOUT resampling. So unlike my previous measurement (#621) where I explicitly tested the perfromance of resampling of the Wiim Ultra under the stress of intersample peaks, I am now testing the performance of the Topping E70 DAC. In that previous post I have already shown in the very first plot the signals with intersample peaks are perfectly transmitted using the digital SPDIF connection, so this will now really only test the DAC's performance.
I am testing the RCA outputs of the DAC with an Audtient ID24, where I use the Insert Returns, which completly skips the pre-amp of the Auditent and thus has the highest SNR I can get with this device. The SNR should be at 120dB.
I have tested the RCA outputs at both the 2V and 2.5V setting, the restults are absolutely identical. I will show the 2.5V results here. I have not tested the XLR outputs because the ADC of the Audient ID24 peaks at +12.5dBu (=3.26V) which is not enough to measure the the XLR outputs, but is plenty to measure even the 2.5V RCA signal.

Let's start off with a baseline, measuring 0dbFS (first the 5512.5, then 7350 and finally 11025, all at 0dBFS):
Intersample_5512.5_0_dBFS_44k_PCM24_LR.png
Intersample_7350_0_dBFS_44k_PCM24_LR.png

Intersample_11025_0_dBFS_44k_PCM24_LR.png

Ok so I measuere an THD+N of around 90dB. I don't know where my bottleneck is, it could be the AudientID24 which has less then expected SNR. But it does not matter here, since what we are after are complete breakdowns of the transmission.

So now let's look at our intersample peaks (same sorting as above, each at its own maximum volume, 5512.5 @+0.69dBFS, 7350 @+1.25dBFS, 11025 @+3.01dBFS):
Intersample_5512.5_+0.69_dBFS_44k_PCM24_LR.png

Intersample_7350_+1.25_dBFS_44k_PCM24_LR.png

Intersample_11025_+3.01_dBFS_44k_PCM24_LR.png

Here we have THD+N values of -39, -29,-19 respectively for the 5512.5, 7350 and 11025Hz tones. What is however really interesting and actually unexpected for me, we don't have the spectra of clipping here! Clipping would produce only uneven harmonics. But here the 2nd harmonic is also always there, and is almost as loud as the 3rd. That is actually important for this discussion!

Now I tested at which setting the volume knob of the Topping E70 DAC the spectra normalize:
  • -0.5dB for 5512.5
  • -1.0 for 7350
  • -3.0 for 11025
Thus the volume setting on the Topping E70 does prevent the issue, and apparently the device has some headroom, since the it needed only -0.5dB for the +0.69dBFS singal and -1.0 for the +1.25dBFS signal. To further test that I made a series of files where I took the 5512.5Hz file and decreased the volume by a small amount. The result is that the Topping E70 has between 0.27 and 0.29dB of analog headroom above 0dBFS.
 
Last edited:
So now I have measured the analog RCA output of my Topping E70, which was fed from Wiim ultra WITHOUT resampling. So unlike my previous measurement (#621) where I explicitly tested the perfromance of resampling of the Wiim Ultra under the stress of intersample peaks, I am now testing the performance of the Topping E70 DAC. In that previous post I have already shown in the very first plot the signals with intersample peaks are perfectly transmitted using the digital SPDIF connection, so this will now really only test the DAC's performance.
I am testing the RCA outputs of the DAC with an Audtient ID24, where I use the Insert Returns, which completly skips the pre-amp of the Auditent and thus has the highest SNR I can get with this device. The SNR should be at 120dB.
I have tested the RCA outputs at both the 2V and 2.5V setting, the restults are absolutely identical. I will show the 2.5V results here. I have not tested the XLR outputs because the ADC of the Audient ID24 peaks at +12.5dBu (=3.26V) which is not enough to measure the the XLR outputs, but is plenty to measure even the 2.5V RCA signal.

Let's start off with a baseline, measuring 0dbFS (first the 5512.5, then 7350 and finally 11025, all at 0dBFS):
View attachment 427551View attachment 427552
View attachment 427553
Ok so I measuere an THD+N of around 90dB. I don't know where my bottleneck is, it could be the AudientID24 which has less then expected SNR. But it does not matter here, since what we are after are complete breakdowns of the transmission.

So now let's look at our intersample peaks (same sorting as above, each at its own maximum volume, 5512.5 @+0.69dBFS, 7350 @+1.25dBFS, 11025 @+3.01dBFS):
View attachment 427554
View attachment 427556
View attachment 427557
Here we have THD+N values of -39, -29,-19 respectively for the 5512.5, 7350 and 11025Hz tones. What is however really interesting and actually unexpected for me, we don't have the spectra of clipping here! Clipping would produce only uneven harmonics. But here the 2nd harmonic is also always there, and is almost as loud as the 3rd. That is actually important for this discussion!

Now I tested at which setting the volume knob of the Topping E70 DAC the spectra normalize:
  • -0.5dB for 5512.5
  • -1.0 for 7350
  • -3.0 for 11025
Thus the volume setting on the Topping E70 does prevent the issue, and apparently the device has some headroom, since the it needed only -0.5dB for the +0.69dBFS singal and -1.0 for the +1.25dBFS signal. To further test that I made a series of files where I took the 5512.5Hz file and decreased the volume by a small amount. The result is that the Topping E70 has somthing between 0.26 and 0.29 db of headroom. I need a better test to quantify that more exactly.
All distortion seems harmonic. Compared to the Wiim resampler and Benchmark test, the degradation will probably be much less severe.

The bottleneck in the 0 dBFS measurements may be the distortion of the ADC.
 
I continued my test with the analog RCA output of the Wiim Ultra, without any resampling or any other processing. I will not post any plots anymore, but I have followed the same procedure as in my previous post.
  • the plots look very similar to the once from the Topping E70
  • there are both even and odd harmonics, of bascially the same height
to get rid of the harmonics the volume needed to be decreased from 100 to:
  • 5512.5Hz: 98
  • 7350Hz: 96
  • 11025Hz: 91
The Wiim Ultra has an analog headroom of between 0.31 and 0.32dB above 0dBFS.
 
Last edited:
I continued my test with the analog RCA output of the Wiim Ultra, without any resampling or any other processing. I will not post any plots anymore, but I have followed the same procedure as in my previous post.
  • the plots look very similar to the once from the Topping E70
  • there are both even and odd harmonics, of bascially the same height
to get rid of the harmonics the volume needed to be decreased from 100 to:
  • 5512.5Hz: 98
  • 7350Hz: 96
  • 11025Hz: 91
The Wiim Ultra has an analog headroom of more than 0.3dB and less than 0.4dB above 0dBFS.
Interesting. Both have an ESS chip so the similarity maybe should not be surprising. The E70 has an ES9028PRO and the Wiim Ultra has an ES9038Q2M.
 
What is however really interesting and actually unexpected for me, we don't have the spectra of clipping here!
AFAICT previously you were resampling to 96 kHz, i.e. not power of 2 ratio. That could explain why you got spectra there but not here. Oversampling in DAC will use power of 2 ratios.
Clipping would produce only uneven harmonics. But here the 2nd harmonic is also always there, and is almost as loud as the 3rd.
One way to get both odd and even harmonics is asymetric clipping, e.g., top peaks clipped more than bottom ones.
 
Based on @JIW's post #526 I created a plot showing the maximal intersample peak for each frequency of the fundamental tone (with the sampling rate being 44100Hz):
maxPeakLog.png

Looking at the blue line, we can see that the theoretical maximum of intersample peaks increases strongly with frequency. Especially strong after 20kHz, and reaches infinity at the sampling rate. That line is important for resampling. The resampler needs that much headroom to not overflow during the calcultion at a given frequency. I showed in post #621 that resamplers without headroom can produce very ugly results, which create distortions not only above the tones frequency but also below, and very significantly so.

Here the same plot but now in linear scale:
maxPeak_marking.png

The orange line is the 2nd harmonic and green the 3rd. If we disregard resampling and just concentrate on plain DAC's, then any inaccuracies due to the intersample peaks will introduce higher harmonics. If the DAC's were just hard clipping on the ouput than we would only get odd hamonics. However, as I measurend my two DACs I have lying around, I have seen that those also create even harmonics, which are as loud as the odd. So this plot shows how much headroom we need such that the 2nd (or 3rd) harmonics produced are outside of the hearing range.
Thus if we want to be sure that no 2nd harmonic is at frequencies lower than 20kHz than we would need 2.42dB of heardroom.
If the DAC's were properly hard clipping than only the 3rd harmonic would be relevant here, meaning that we'd only need 1.02dB of headroom.

That following is especially for @amirm: This is could be a result were proper testing would make manufacturers aware of this issue and move them to solve it (by properly hard clipping) while not needing more than 1dB of headroom and thus only decreasing the SNR by that amount and not by the aforementioned 3dB.
 
Last edited:
Based on @JIW's post #526 I created a plot showing the maximal intersample peak for each frequency of the fundamental tone (with the sampling rate being 44100Hz):
View attachment 427594
Looking at the blue line, we can see that the theoretical maximum of intersample peaks increases strongly with frequency. Especially strong after 20kHz, and reaches infinity at the sampling rate. That line is important for resampling. The resampler needs that much headroom to not overflow during the calcultion at a given frequency. I showed in post #621 that resamplers without headroom can produce very ugly results, which create distortions not only above the tones frequency but also below, and very significantly so.

Here the same plot but now in linear scale:
View attachment 427624
The orange line is the 2nd harmonic and green the 3rd. If we disregard resampling and just concentrate on plain DAC's, then any inaccuracies due to the intersample peaks will introduce higher harmonics. If the DAC's were just hard clipping on the ouput than we would only get odd hamonics. However, as I measurend my two DACs I have lying around, I have seen that those also create even harmonics, which are as loud as the odd. So this plot shows how much headroom we need such that the 2nd (or 3rd) harmonics produced are outside of the hearing range.
Thus if we want to be sure that no 2nd harmonic is at frequencies lower than 20kHz than we would need 2.42dB of heardroom.
If the DAC's were hard clipping than only the 3rd harmonic would be relevant here, meaning that we'd only need 1.02dB of headroom.

That following is especially for @amirm: This is could be a result were proper testing would make manufacturors aware of this issue and move them to solve it (by properly hard clipping) while not needing more than 1dB of headroom and thun only decreasing the SNR by that amount.
Those ISOs are only for one pair of samples. The signal would have to ramp up and decay after to avoid clipping which may happen in music. For a constant amplitude, unclipped signal, Fs/4 at pi/4 phase gives the maximum ISOs.

What is the role of the harmonics and how do you calculate their levels?
 
What is the role of the harmonics and how do you calculate their levels?
As I wrote above, these are the products of the clipping in case of the intersample peaks on the fundamental. I have not calculated their levels, I have calculated which headroom would be needed for the fundamental such that no harmonics are created below a given frequency (independently of their level).
 
Last edited:
As I wrote above, these are the products of the clipping in case of the intersample peaks on the fundamental. I have not calculated their levels, I have calculated which headroom would be needed for the fundamental such that the harmonics are not created below a given frequency (independently of their level).
So H2 is the headroom required for the fundamental, i.e. H2/2, not to produce ISOs?
 
So H2 is the headroom required for the fundamental, i.e. H2/2, not to produce ISOs?
Right! And my argument is that if the DAC's were properly hard clipping than we'd only need so much headroom as H3, which is only 1dB. Because then we'd only need to have enough headroom for intersample peaks of fundamentals below 20kHz/3=6666Hz. Only fundamentals higher than 6666Hz can have intersample peaks above 1dB but these would then create harmonics outside of 20kHz (if the DAC's were properly hard clipping).
And for the non-properly hard clipping DAC's this shows that we need 2.42dB of headroom and not 3dB or even more as some have suggested.
 
Last edited:
Right! And my argument is that if the DAC's were properly hard clipping than we'd only need so much headroom as H3, which is only 1dB. Because then we'd only need to have enough headroom for intersample peaks of fundamentals below 20kHz/3=6666Hz. Only fundamentals higher than 6666Hz can have intersample peaks above 1dB but these would then create harmonics outside of 20kHz (if the DAC's were properly hard clipping).
And for the non-properly hard clipping DAC's this shows that we need 2.42dB of headroom and not 3dB or even more as some have suggested.
If the ISO overload produces harmonic distortion. If distortion is like for the sample rate converter in the Wiim, there will be distortion components below the fundamental.
 
If the ISO overload produces harmonic distortion. If distortion is like for the sample rate converter in the Wiim, there will be distortion components below the fundamental.
Sure. This is why the blue line in the plots is relevant for resamplers and the H2 and H3 line are relvant for non-resampling DACs.

Quoting from post #647 I wrote, with the relevant part in bold:
View attachment 427627
Looking at the blue line, we can see that the theoretical maximum of intersample peaks increases strongly with frequency. Especially strong after 20kHz, and reaches infinity at the sampling rate. That line is important for resampling. The resampler needs that much headroom to not overflow during the calcultion at a given frequency.....

View attachment 427628
The orange line is the 2nd harmonic and green the 3rd. If we disregard resampling and just concentrate on plain DAC's, then any inaccuracies due to the intersample peaks will introduce higher harmonics. If the DAC's were just hard clipping on the ouput than we would only get odd hamonics....
 
And for resamplers: since the intersample peaks can reach basically infinity, the only real way out here, it that the resamplers convert to 32bit float first, than resample and then there are two ways:
  • output that 32 bits stream to a 32 bit floating point DAC
  • put in a hard limiter at 0dBFS (or a user controlled attenuator) and convert back to integer before outputting to the DAC
Does the currently used hardware actually allow for that? Does it do 32bit float?
 
Last edited:
And for resamplers: since the intersample peaks can reach basically infinity, the only real way out here, it that the resamplers convert to 32bit float first, than resample, and then convert back to the users bitdepth. This will solve all problems whatsoever.
Assuming it is followed up by some digital attenuation (e.g. volume control), that is.

Also, as per your graph in #647, worst-case ISP amplitude skyrockets when approaching fs/2, so there is some benefit to using filters that aren't quasi ideal brickwall affairs; this is why the SoX resampler defaults to a bandwidth of 95% fs/2 these days.
 
Just to show how the state of things ist when we are talking streaming:
Olvia Rodrigo - So American (Spotify Connect over Wiim Ultra to Toslink).png

So above is an already bad lossless flac file which I bought from Quobz. At the bottom we see what we get if we stream that track via Spotify (I recoreded directly the digital signal from the SPDIF output of the Wiim Ultra). Hmm, that looks really bad.. I mean AAC is actually a really good encoder and at a bitrate of 192 kbps is would be able to be really completly transparent, and Spotify uses 320 kbps. However, it was never intended to be able to encode near to 0dBFS, or god forbid above 0dBFS. And what we see here is how badly the whole industry is in denail of that issue.

It really saddens me to say that, but the audiophiles are right: only lossless, bit perfect streams are the way to go here. Not because the lossy compression was soo bad, but because it is complely missued!
And even worse, concerning the analog outputs from our hardware (which I showed in posts #642, #644), or even worse from resamplers (#621), the only way out for the consumer is to use lossless sources with as much sampling rate as possible!! The audiophiles were right concerning high-res, all that time! Can you belive what I just wrote?! I cannot even belive myself what I just wrote! And why, because of the high sampling rate of high-res it allows for only very minuscule intersample peaks in the hearable range!

Here's the plots which is backing that up with actual science.
First the same plot I showed in post #647 which was at 44.1kHz sampling rate:
maxPeakLog.png


And now at 192kHz:
maxPeakLog@192kHz.png

Look at the values of the ordinate (aka y-axis). The difference is not as the factor between 192kHz and 44.1kHz would suggest (192/44.1=4.35) but its actually a factor 20.72 better!

So here we are, because nobody in the industry cares, the user has to actully follow what audiophiles have always been saying and use lossless high-res sources. And actually DSD (aka SACD) is the kings here because it brings the problem problem down to a mathematically perfect 0! And really, I must ask, is that perhaps what our audiophile friends though they heared, when they said that bitperfect highres and SACD sounded more "natural" than resampled, lossy sources?
 
At the bottom we see what we get if we stream that track via Spotify (I recoreded directly the digital signal from the SPDIF output of the Wiim Ultra). Hmm, that looks really bad.
And how does it look with volume normalization enabled?

the only way out for the consumer is to use lossless sources with as much sampling rate as possible!!
Sounds like quite an exaggeration to me.
 
Do you mean that setting inside Spotiy? That is not available when using Spotify Connect. Just like the settings for the quality of the stream.
According to the SDK documentation it should be available. Or at least it should be possible to do if the application (wiim in this case) chooses to do so. From changelog:
Added support for loudness normalization, see documentation.
SpStreamInfo:
nt32_t gain_mdb Audio normalization gain (in mdB) to apply to the stream.
 
Back
Top Bottom