Weiss Engineering DAC50x (DAC501 and DAC502) Review
May 30, 2024 at 10:59 AM Post #406 of 417
So, in his review of the DAC204, @GoldenSound says:

"The DAC204 does not have any additional internal headroom and therefore will distort/clip in the presence of intersample overs. Recommended that you set your player volume to -3dB when using this DAC."

I hope the same is not also true of the DAC501/2? I have been using 0dB digital attenuation, as Weiss recommends.

And in case it is true, I wonder if it would only apply when using the 0dB analog attenuation setting, or also when that setting is -10dB/-20dB/-30dB.
I've not had a chance to test the 501/502 at home so can't say.

Though analog attenuation wouldn't address the issue. It's the DAC itself that is clipping and once it's clipped that's it
 
May 30, 2024 at 1:50 PM Post #407 of 417
Weiss provide the stepped attenuation (10, 20 dB) so you can position the digital volume in the right range. When that is done correctly everything is fine. There is a white paper from the company on the operation of the digital volume control which explains how it delivers higher quality than an analogue control. I have never heard the 501 or the Helios clipping on output.
 
May 30, 2024 at 5:37 PM Post #408 of 417
I've not had a chance to test the 501/502 at home so can't say.

Though analog attenuation wouldn't address the issue. It's the DAC itself that is clipping and once it's clipped that's it
What bit depth did you find intersample overs issue with dac 204?

501 uses 32bit chip so not sure why there would be any such issue.
 
May 30, 2024 at 6:08 PM Post #409 of 417
What bit depth did you find intersample overs issue with dac 204?

501 uses 32bit chip so not sure why there would be any such issue.
The bit depth doesn't matter.
max value at 16 bit is still max value at 24, 32 or 64 bit.

Otherwise when playing 24 bit content you'd suddenly find everything was about 48dB quieter than 16 bit

The issue is that if the source material has content that when reconstructed exceeds 0dBfs, your DAC needs to have built in digital headroom or an attenuation stage prior to oversampling, else that content will just be clipped.
 
May 30, 2024 at 6:28 PM Post #410 of 417
The bit depth doesn't matter.
max value at 16 bit is still max value at 24, 32 or 64 bit.

Otherwise when playing 24 bit content you'd suddenly find everything was about 48dB quieter than 16 bit

The issue is that if the source material has content that when reconstructed exceeds 0dBfs, your DAC needs to have built in digital headroom or an attenuation stage prior to oversampling, else that content will just be clipped.
that doesn't make sense to me. Could you show the math of how a 16bit 0dBFS signal could overflow a 32bit buffer or cause digital clipping in a 32bit DAC?
 
Last edited:
May 30, 2024 at 7:00 PM Post #411 of 417
that doesn't make sense to me. Could you show the math of how a 16bit 0dBFS signal could overflow a 32bit buffer or cause digital clipping in a 32bit DAC?
This is an example of intersample overs. The green squares represent the PCM samples. The green line represents the actual waveform once reconstructed:

1717109094871.png


You can see that despite all the samples themselves being at or below 0dBfs, the waveform goes above it.

To make it clearer here's the same thing but with the Y axis set to percentage:

1717109138540.png


The problem is, if you have 16 bit info, you can't go above 100%/0dBfs. 1111111111111111 is the highest number a 16 bit sample can represent. So when a DAC without any digital headroom attempts to reconstruct this, those values that SHOULD keep going up, can't and you just get clipping, as seen on the Weiss DAC204:

1717109290898.png


When you convert 16 bit data to 24/32 bit, you don't add more area that the signal could go up to, higher bit depth allows you more precision and the ability to describe SMALLER signals, not bigger ones (unless you are also changing your DACs maximum output when doing so by a factor of about 48dB).
This is why 16 bit has a dynamic range of about 96dB and 24 bit has a dynamic range of about 140dB (ignoring effects of noise shaping)

Let's say for example we are swapping from 16 bit to 24 bit.

We would take the max 16 bit sample (1111111111111111) and the simplest way to convert to 24 bit (ie: no dithering etc) is just add zeroes at the end. So we now have 111111111111111100000000.

In terms of the numbers these represent, we've gone from 65,535 to 16,776,960. But we also have to keep in mind that the DACs maximum output now has a different value.
The maximum 24 bit value is 111111111111111111111111, which in binary terms is 16777215.

65,535 is 100% of 65,535. But 16,776,960 is 99.9984% of 16,777,215. We are still effectively at the max output/clipping, and the difference is just because our new values can be described more precisely. But it hasn't changed the fact that we still cannot describe a digital sample that is over what the maximum integer our binary format allows.

You cannot describe a value of 67,000 with a 16 bit format. If we want to address this, we can instead apply some digital attenuation before our oversampling. Let's do 6dB to make things easy. So that max PCM sample we had of 65535 becomes 32,768. And that previously impossible value of 67,000 will end up being 33,500. Both of which are able to be described by a 16 bit format and within the DACs maximum output of 65535.

It doesn't matter if you convert to 24 or 32 bit, because that just allows you to more precisely describe the value, it doesn't suddenly give you additional maximum amplitude from the DAC. You COULD do it that way, meaning the DAC will convert all 16 bit values to their numerical 24 bit equivalents rather than properly converting the sample values to the proportional 24 bit values. But this then means that the loudest a 16 bit track could ever get on that DAC would be 65535/16777215, which works out to 0.3% of maximum, or -48dB, so they'd be hilariously/unusably quieter than playing 24 bit tracks.
 
Last edited:
May 30, 2024 at 7:07 PM Post #412 of 417
lol, I was just going to post Mikhail's take on Benchmark's article, but you actually wrote up a whole thing! :smile:
 
May 30, 2024 at 7:35 PM Post #413 of 417
This is an example of intersample overs. The green squares represent the PCM samples. The green line represents the actual waveform once reconstructed:



You can see that despite all the samples themselves being at or below 0dBfs, the waveform goes above it.

To make it clearer here's the same thing but with the Y axis set to percentage:



The problem is, if you have 16 bit info, you can't go above 100%/0dBfs. 1111111111111111 is the highest number a 16 bit sample can represent. So when a DAC without any digital headroom attempts to reconstruct this, those values that SHOULD keep going up, can't and you just get clipping, as seen on the Weiss DAC204:



When you convert 16 bit data to 24/32 bit, you don't add more area that the signal could go up to, higher bit depth allows you more precision and the ability to describe SMALLER signals, not bigger ones (unless you are also changing your DACs maximum output when doing so by a factor of about 48dB).
This is why 16 bit has a dynamic range of about 96dB and 24 bit has a dynamic range of about 140dB (ignoring effects of noise shaping)

Let's say for example we are swapping from 16 bit to 24 bit.

We would take the max 16 bit sample (1111111111111111) and the simplest way to convert to 24 bit (ie: no dithering etc) is just add zeroes at the end. So we now have 111111111111111100000000.

In terms of the numbers these represent, we've gone from 65,535 to 16,776,960. But we also have to keep in mind that the DACs maximum output now has a different value.
The maximum 24 bit value is 111111111111111111111111, which in binary terms is 16777215.

65,535 is 100% of 65,535. But 16,776,960 is 99.9984% of 16,777,215. We are still effectively at the max output/clipping, and the difference is just because our new values can be described more precisely. But it hasn't changed the fact that we still cannot describe a digital sample that is over what the maximum integer our binary format allows.

You cannot describe a value of 67,000 with a 16 bit format. If we want to address this, we can instead apply some digital attenuation before our oversampling. Let's do 6dB to make things easy. So that max PCM sample we had of 65535 becomes 32,768. And that previously impossible value of 67,000 will end up being 33,500. Both of which are able to be described by a 16 bit format and within the DACs maximum output of 65535.

It doesn't matter if you convert to 24 or 32 bit, because that just allows you to more precisely describe the value, it doesn't suddenly give you additional maximum amplitude from the DAC. You COULD do it that way, meaning the DAC will convert all 16 bit values to their numerical 24 bit equivalents rather than properly converting the sample values to the proportional 24 bit values. But this then means that the loudest a 16 bit track could ever get on that DAC would be 65535/16777215, which works out to 0.3% of maximum, or -48dB, so they'd be hilariously/unusably quieter than playing 24 bit tracks.
I see this an issue with implementation of upsampling and reconstruction filter and lack of internal bit depth. Also don’t modern dacs already attenuate at the front end before upsampling?

Did you input 0xFFFF to get the clipped output from dac204?

Also, why did you zero pad the LSB and not MSB as customary for mapping 16bit to higher bit depth?
 
Last edited:
May 30, 2024 at 7:42 PM Post #414 of 417
I see this an issue with implementation of upsampling and reconstruction filter and lack of internal bit depth.

Did you input 0xFFFF to get the clipped output from dac204?

Also, why did you zero pad the LSB and not MSB as customary for mapping 16bit to higher bit depth?
Because as said, if you pad the Msb, you end up attenuating everything by 48dB
 
May 30, 2024 at 7:49 PM Post #415 of 417
Because as said, if you pad the Msb, you end up attenuating everything by 48dB
This makes sense. Thanks.

Don’t most modern dac chips already attenuate the digital signal before going through the upsampling filter? I mean in the worst corner case you just have to reduce Roon volume by a couple dB and problem solved.
 
May 30, 2024 at 8:10 PM Post #416 of 417
This makes sense. Thanks.

Don’t most modern dac chips already attenuate the digital signal before going through the upsampling filter? I mean in the worst corner case you just have to reduce Roon volume by a couple dB and problem solved.
Unfortunately not. IMO they absolutely should, and most professional oriented products as well as many high end DACS (RME, Benchmark, Chord, Ferrum etc) all have appropriate digital headroom management.

BUT, many manufacturers like Topping, SMSL, Gustard that market heavily based on their SINAD score, opt not to as doing so would mean losing a couple dB of SINAD, thereby putting them lower in the rankings for that metric vs their competitors.
 
May 30, 2024 at 9:51 PM Post #417 of 417
Weiss provide the stepped attenuation (10, 20 dB) so you can position the digital volume in the right range. When that is done correctly everything is fine. There is a white paper from the company on the operation of the digital volume control which explains how it delivers higher quality than an analogue control. I have never heard the 501 or the Helios clipping on output.

As @GoldenSound explained, the analog stepped attenuator (the 0/-10/-20/-30dB setting) does nothing to address the problem of inter-sample overs.

The digital attenuation, however, does solve it, when set to something like -3dB, i.e., not 0dB.
 

Users who are viewing this thread

Back
Top