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

Topping D50 III Balanced DAC with EQ Review

Rate this DAC:

  • 1. Poor (headless panther)

    Votes: 9 2.0%
  • 2. Not terrible (postman panther)

    Votes: 13 3.0%
  • 3. Fine (happy panther)

    Votes: 62 14.1%
  • 4. Great (golfing panther)

    Votes: 356 80.9%

  • Total voters
    440
Well, it's better than nothing and it depends on how much available filters it has. Full blow DSP is what really makes the job for room EQ.
"Full blown DSP", about as specific as "Full blown automobile"
 
"Full blown DSP", about as specific as "Full blown automobile"
1000014544.jpg
 
Obviously, you didn't get what i meant...
Hate to break it to you: everyone got exactly what you meant, but you are not precise with your terms. If you want a device which can do convolution of impulse responses or load finite impulse response filters, then you should say it. A device that can only process biquadratic filters is still very much a digital signal processor.
 
Hate to break it to you: everyone got exactly what you meant, but you are not precise with your terms. If you want a device which can do convolution of impulse responses or load finite impulse response filters, then you should say it. A device that can only process biquadratic filters is still very much a digital signal processor.
All right Turtle, have a nice day.
 
I am in the process of testing DACs' and dongles' performance of onboard PEQ, and obtained interesting data about the Topping D50 III.

One testing condition is the following PEQ profile in which 4 peak filters are cascaded at low frequencies. In the Equalizer APO syntax, it is:
Filter 1: ON PK Fc 20 Hz Gain 2.5 dB Q 0.35
Filter 2: ON PK Fc 25 Hz Gain -3.0 dB Q 0.35
Filter 3: ON PK Fc 30 Hz Gain 2.5 dB Q 0.35
Filter 4: ON PK Fc 35 Hz Gain -3.0 dB Q 0.35

On the Topping Tune software, the setting looks like:
D50III_Config_4_Filters_Cascaded.png


The measured response was as expected:
D50III_FR_4_Filters_Cascaded.png


However, quantization error from the D50 III's onboard PEQ was quite noticeable on FFTs:
D50III_1kHz_SINAD_4_Filters_Cascaded.png

And as expected, when PEQ filters' quantization error occurs, it worsens as the sampling frequency increases. In contrast, the same cascaded filters in EQ APO on my Windows PC did not add any noise, the response being identical to that of no PEQ.

Multitone (21-tone) responses were worse across the board:
D50III_21MT_4_Filters_Cascaded.png

Essentially the onboard PEQ lost up to 5.5 bits of resolution at low frequencies.

Sure, this may represent the worst-case scenario and may not be audible concerns. But provided that this is a software issue (i.e., computation precision), Topping should be able to resolve it.

Another issue I found is that the shelving filters' Q factor is not translated correctly:
D50III_FR_Low-Shelf.png

That is, the Q factor is misinterpreted as the "shelf slope" parameter. This is quite common in other PEQ software, too, but definitely not correct.

Lastly, here's a spoiler: PEQ based on some cheap DSP solutions, like by TTGK and FiiO, has no such quantization error as shown above.
 
Last edited:
I am in the process of testing DACs' and dongles' performance of onboard PEQ, and obtained interesting data about the Topping D50 III.

One testing condition is the following PEQ profile in which 4 peak filters are cascaded at low frequencies. In the Equalizer APO syntax, it is:


On the Topping Tune software, the setting looks like:
View attachment 475005

The measured response was as expected:
View attachment 475006

However, quantization error from the D50 III's onboard PEQ was quite noticeable on FFTs:
View attachment 475003
And as expected, when PEQ filters' quantization error occurs, it worsens as the sampling frequency increases. In contrast, the same cascaded filters in EQ APO on my Windows PC did not add any noise, the response being identical to that of no PEQ.

Multitone (21-tone) responses were worse across the board:
View attachment 475004
Essentially the onboard PEQ lost up to 5.5 bits of resolution at low frequencies.

Sure, this may represent the worst-case scenario and may not be audible concerns. But provided that this is a software issue (i.e., computation precision), Topping should be able to resolve it.

Another issue I found is that the shelving filters' Q factor is not translated correctly:
View attachment 475007
That is, the Q factor is misinterpreted as the "shelf slope" parameter. This is quite common in other PEQ software, too, but definitely not correct.

Lastly, here's a spoiler: PEQ based on some cheap DSP solutions, like by TTGK and FiiO, has no such quantization error as shown above.
I keep insisting about tests like this and as it seems, for a good reason.
Thanks for that.
 
PEQ based on some cheap DSP solutions, like by TTGK and FiiO, has no such quantization error as shown above.
I believe TTGK & FiiO devices such as the KA15 use HW-based DSP, or at least controllers with specialized DSP co-processors.
Topping PEQ implementation on the other hand relies on XMOS SW libraries. These libraries have been available for quite some time, but it appears they are only used with the XU316 chip. Could it be that, despite being XMOS high-end chip, it is still not powerful enough, or is missing the high-precision maths lib. needed to compute DSP correctly—as shown on these “corner-type” tests?
 
Last edited:
I believe TTGK & FiiO devices such as the KA15 use HW-based DSP, or at least controllers with specialized DSP co-processors.
Topping PEQ implementation on the other hand relies on XMOS SW libraries. These libraries have been available for quite some time, but it appears they are only used with the XU316 chip. Could it be that, despite being XMOS high-end chip, it is still not powerful enough, or is missing the high-precision maths lib. needed to compute DSP correctly—as shown on these “corner-type” tests?
32 bit chip vs 64 required for lower quantization, that's why. I'm not sure what FiiO and TTGK use but it always depends on the bit depth regardless.
 
And as expected, when PEQ filters' quantization error occurs, it worsens as the sampling frequency increases.
@Rja4000 also measured a shift on the 100Hz central frequency of a peak filter in the D50-II "unofficial" review—see https://www.audiosciencereview.com/...ng-d50-iii-dac-review-and-measurements.53749/

Is this something you have confirmed? Could it be a quantization error as well, or is it caused by math. errors in the Topping app (e.g. sending 'wrong', rounded, biquad coefficients to the XU316)?

High-freq filters such as the Fc 10,000 Hz / Gain 12 dB / Q 0.6 used on the review may also give clues about the PEQ filters' implementation and whether they re-calculate the filter coefficients based on the actual signal sampling frequency of simply "assumes" a 48 kHz FS at the time the filters are saved.
 
@Rja4000 also measured a shift on the 100Hz central frequency of a peak filter in the D50-II "unofficial" review—see https://www.audiosciencereview.com/...ng-d50-iii-dac-review-and-measurements.53749/

Is this something you have confirmed? Could it be a quantization error as well, or is it caused by math. errors in the Topping app (e.g. sending 'wrong', rounded, biquad coefficients to the XU316)?

High-freq filters such as the Fc 10,000 Hz / Gain 12 dB / Q 0.6 used on the review may also give clues about the PEQ filters' implementation and whether they re-calculate the filter coefficients based on the actual signal sampling frequency of simply "assumes" a 48 kHz FS at the time the filters are saved.

I confirmed correct operation of the D50 III's peak filters. The issue must have been fixed in a firmware update after @Rja4000's test.

I tested it using his filter setting. Below are the responses of the D50 III's onboard PEQ, EQ APO, and RME ADI-2 DAC FS across three sample frequencies:
D50III_EQAPO_RME_Rja4000_PEQ_Test_Separated.png


In fact, with all of these overlaid , we can see slightly different Q factor effects of the peak filter @ 10 kHz:
D50III_EQAPO_RME_Rja4000_PEQ_Test.png

The D50 III's and EQ APO's responses are identical to each other, showing slightly higher Q when the sample frequency decreases. The RME ADI-2 DAC FS exhibits a similar effect of the sample frequency, but the effect is smaller (i.e., response is not as much affected by Fs). But all these differences should be audibly negligible.
 
The D50 III's and EQ APO's responses are identical to each other, showing slightly higher Q when the sample frequency decreases.
I believe the effect is very well simulated using the typical (only?) biquad formulas—see https://webaudio.github.io/Audio-EQ-Cookbook/audio-eq-cookbook.html
The parameter “Omega0” is a function of Fs, the sampling frequency. EQ APO default assumes Fs = 48 kHz to set the biquad coefficients. The coefficients are typically not recalculated based on the actual sampling frequency of the signal, causing what looks like a change in Q-factor when the sampling frequency varies. It is mostly noticeable at high frequencies.

RME may have a different implementation (don’t they use a HW DSP?). It doesn’t mean EQ APO / D50-III implementations are wrong !!! But it’s one of these little details that may be audible to some: “I hear more resolution with hires. tracks” … Well, maybe… do you EQ the high frequencies by any chance?
 
I believe the effect is very well simulated using the typical (only?) biquad formulas—see https://webaudio.github.io/Audio-EQ-Cookbook/audio-eq-cookbook.html
The parameter “Omega0” is a function of Fs, the sampling frequency.
It is.

RME may have a different implementation (don’t they use a HW DSP?).
RME matches the theoretical formula.
You may find further analysis in my RME UFX III review:
 
I believe the effect is very well simulated using the typical (only?) biquad formulas—see https://webaudio.github.io/Audio-EQ-Cookbook/audio-eq-cookbook.html
The parameter “Omega0” is a function of Fs, the sampling frequency. EQ APO default assumes Fs = 48 kHz to set the biquad coefficients. The coefficients are typically not recalculated based on the actual sampling frequency of the signal, causing what looks like a change in Q-factor when the sampling frequency varies. It is mostly noticeable at high frequencies.

RME may have a different implementation (don’t they use a HW DSP?). It doesn’t mean EQ APO / D50-III implementations are wrong !!! But it’s one of these little details that may be audible to some: “I hear more resolution with hires. tracks” … Well, maybe… do you EQ the high frequencies by any chance?
It is.

RME matches the theoretical formula.
You may find further analysis in my RME UFX III review:
The digital peaking filter implementations of all these three devices are based on the RBJ formulation. What I meant in my post is that RME's peak filter response at 10 kHz seems to have a bit wider BW than the exact RBJ transfer function (as calculated by the miniDSP spreadsheet). The difference in measured response is most apparent at Fs = 48 kHz:
D50III_EQAPO_RME_Rja4000_PEQ_Test_48k.png

EQ APO's response (exactly same as the D50 III onboard PEQ's) looks closer to what is theoretically predicted by the RBJ formula whereas RME's response has a tiny bit wider BW.

Regardless, I wonder if there's any biquad formulation that better mimics the textbook, analog peak filters even at a low Fs. Transfer function plots on PEQ software usually show the analog prototype filter's response. Sure, at a high Fs, a biquad filter's response gets much closer to its corresponding analog filter's, but it should be possible to introduce some correction factor in the formula toward better approximating the prototype even at a low Fs. Perhaps, RME tried that (but very minimally)? :)
 
Last edited:
I confirmed correct operation of the D50 III's peak filters. The issue must have been fixed in a firmware update after @Rja4000's test.

I tested it using his filter setting. Below are the responses of the D50 III's onboard PEQ, EQ APO, and RME ADI-2 DAC FS across three sample frequencies:
View attachment 475125

In fact, with all of these overlaid , we can see slightly different Q factor effects of the peak filter @ 10 kHz:
View attachment 475124
The D50 III's and EQ APO's responses are identical to each other, showing slightly higher Q when the sample frequency decreases. The RME ADI-2 DAC FS exhibits a similar effect of the sample frequency, but the effect is smaller (i.e., response is not as much affected by Fs). But all these differences should be audibly negligible.
In reality that looks like cramping. The point is that they should use oversampling to avoid high frequency operation to be cramped due to anti-aliasing filters killing everything at nyquist, some stock eqs of DAWs also suffer from this. Do you see how the bells in the top end are asymmetrical? It's not about the q value, yeah sure they can be calculated differently and 0.5 in an eq has different width than another if instead of the standard fomula they use the square root one where 0.71q is 1q in another, but that ain't it.
 
Last edited:
In reality that looks like cramping. The point is that they should use oversampling to avoid high frequency operation to be cramped due to anti-aliasing filters killing everything at nyquist, some stock eqs of DAWs also suffer from this. Do you see how the bells in the top end are asymmetrical? It's not about the q value, yeah sure they can be calculated differently and 0.5 in an eq has different width than another if instead of the standard fomula they use the square root one where 0.71q is 1q in another, but that ain't it.
Are you sure it is cramping? To me this is just how the biquads work—low-tech Excel model of the @Rja4000 filters at different sampling frequencies (Fs):
Biquads1.jpg
 
Are you sure it is cramping? To me this is just how the biquads work—low-tech Excel model of the @Rja4000 filters at different sampling frequencies (Fs):
View attachment 475541
No that's definitely not how biquad works. Your graph proves it, that's exactly cramping, see how at higher sample rates the bell becomes symmetrical? Because the filter moves further up in the spectrum. The other bands in the lower part of the spectrum don't change shape at different sample rates because they don't interact with the decimator filter. So both Topping and RME are involved?
 
No that's definitely not how biquad works.
Could you point to some reference paper or formulas on how biquad filters should work? It seems that the RBJ formulae’s are widely used, including in EQ APO. So, even if they are wrong, aren’t they an accepted PEQ implementation?
 
Could you point to some reference paper or formulas on how biquad filters should work? It seems that the RBJ formulae’s are widely used, including in EQ APO. So, even if they are wrong, aren’t they an accepted PEQ implementation?
After some reading over the Internet, I found that most digital PEQ implementations in consumer audio, including EQ APO, adopt the old RBJ biquad formulation (either "Direct Form 1" or "Direct Form 2" or their transposed versions) based on the bilinear transform. These are still dominant cookbook formulas. But there are two key problems with this approach:
  1. Quantization (i.e., rounding-off) error at low frequencies, especially when implemented with single-precision (float32) numbers;
  2. EQ cramping
However, the digital audio filter research has come a long way and proposed good solutions to both of these problems. One issue is that these results are still not widely adopted---I do not know exactly why. What I know, nevertheless, is that modern digital PEQ solutions, much better than we encounter in most software and hardware products, are readily available (though not well packaged). Anyway, if you're interested, have a look at this interesting discussion:

https://www.kvraudio.com/forum/viewtopic.php?t=454106
Some major research contributors to the digital audio filter design seem to have joined that forum...
 
Back
Top Bottom