The Best DAC is no DAC

Yes 16 bit is the standard for playback and it's the ultimate test for that reason, but when using more bits you're less depending on jriver's errors as well as having a lower noise floor with which you can look deeper into what's going on while you're examining what you're doing, at least that's why I use it that way. Looking at it as a whole can be done later:)

Speaking of bit depth: measurement 5 and 6 have the same level (-90dB) but 6 has a much lower noise floor, maybe more than twice less noise from what I can see, around 6dB or more. That's a lot! Maybe the test signal for No.6 is more than 16 bits, or the maximum levels are not the same?

HCT logic needs 5 volts power supply, and the 74HCT is really slow with it's rise and fall times. Another thing that stands out on the datasheet is that tests have been done with 1K as a load.
Anyway, I do think the 74lv's are much better and you can always use 2 (79 are in phase, 80's out of phase right?!) to get to a balanced output really easy. They're really fast. I once had the idea to be able to change the level of the dac by changing the power supply voltage, but more than 12 dB isn't possible so it's rather limited, but one way of changing output levels without having to switch resistors it is. Kind of like the pro stuff have on the back.

Do you test with signals at -6dB when you use pcm as a test signal? DSD 0dB FS isn't the same as PCM 0dB, it should be 6dB lower, otherwise it goes into clipping, which can also explain odd order harmonics at maximum level.
Or in another way: dsd isn't supposed to modulate that deep, only 75% = -6dBFS pcm and I don't think jriver takes care of this.

-80dB from maximum level is not really a problem I think and there are many ways to get it down if you choose. My major concern is always at the -40 to -60 region, like you see the distortion is 10% or higher. You could download hqplayer to see if that fixes most of that. What dsd rate are you using?

Enjoy!
 
Member
Joined 2017
Paid Member
Hi, koldby.
Thank you for your measurement data. That is exactly what I want to know. :)I guess strange harmonics in 2(40Hz?) comes from the file itself as you mentioned. I usually use Wave Gene to generate a test signal. The 1st pic is the file done by WG, where harmonics of 100Hz exist. 1kHz in 44.1kHz sampling means no integer quotient(44100/1000=44.1). Instead, 100Hz is probably used for calculation(44100/100=441) to have integer quotient. The side effect of using 100Hz ends up strange 100Hz harmonics if you use WG. I can find some file-oriented strange harmonics in file 4. File 3 is clean.

One way to generate a clean 1kHz test signal in 44.1kHz/16bit sampling is a conversion from 44.1kHz/24bit to 44.1kHz/16bit with white noise option. This process converts residual harmonics into quantization noise(the 2nd pic). It's more convenient though quantization noise is higher than the theoretical value(-98dB).

I'm afraid you can hear residual noise when music is in silence because your file 3 has a larger noise floor than my 2nd pic by 20dB on condition that your FFT is 64k length. Quantization noise of CD(-98dB) isn't audible. Practically speaking, -85dB is the threshold if it's audible or not. Your setup is probably louder than the threshold. Can you hear residual noise? I guess you have roughly -80dB residual noise.
 

Attachments

  • 1k_1.jpg
    1k_1.jpg
    199.7 KB · Views: 259
  • 1k_2.jpg
    1k_2.jpg
    195.1 KB · Views: 262
Yes 16 bit is the standard for playback and it's the ultimate test for that reason, but when using more bits you're less depending on jriver's errors as well as having a lower noise floor with which you can look deeper into what's going on while you're examining what you're doing, at least that's why I use it that way. Looking at it as a whole can be done later:)

Speaking of bit depth: measurement 5 and 6 have the same level (-90dB) but 6 has a much lower noise floor, maybe more than twice less noise from what I can see, around 6dB or more. That's a lot! Maybe the test signal for No.6 is more than 16 bits, or the maximum levels are not the same?

HCT logic needs 5 volts power supply, and the 74HCT is really slow with it's rise and fall times. Another thing that stands out on the datasheet is that tests have been done with 1K as a load.
Anyway, I do think the 74lv's are much better and you can always use 2 (79 are in phase, 80's out of phase right?!) to get to a balanced output really easy. They're really fast. I once had the idea to be able to change the level of the dac by changing the power supply voltage, but more than 12 dB isn't possible so it's rather limited, but one way of changing output levels without having to switch resistors it is. Kind of like the pro stuff have on the back.

Do you test with signals at -6dB when you use pcm as a test signal? DSD 0dB FS isn't the same as PCM 0dB, it should be 6dB lower, otherwise it goes into clipping, which can also explain odd order harmonics at maximum level.
Or in another way: dsd isn't supposed to modulate that deep, only 75% = -6dBFS pcm and I don't think jriver takes care of this.

-80dB from maximum level is not really a problem I think and there are many ways to get it down if you choose. My major concern is always at the -40 to -60 region, like you see the distortion is 10% or higher. You could download hqplayer to see if that fixes most of that. What dsd rate are you using?

Enjoy!

Let me point out, that what I have done here is just a quick and dirty setup to get an idea of , how this no dac performs. Nothing has been optimized in any way. Lots of things to investigate.
I started out with 74HCT74 just to see if it worked and it was with that chip I saw the difference between using Q and invQ as a balanced setup and only using the Q output in a SE setup. After that I substituted the 74HCT74 with the 74LV1G79 to see if the better speed of the LV1G chip could improve the measurements. No substantial change in the measurements.
I don't think there is any form of clipping and I don't know what you are referring to when you say higher level of odd order harmonics @ FS? All odd order harmonics are more than 100 dB down @ FS..

2xdsd DSD128...
Thanks
 
Hi, koldby.
Thank you for your measurement data. That is exactly what I want to know. :)I guess strange harmonics in 2(40Hz?) comes from the file itself as you mentioned. I usually use Wave Gene to generate a test signal. The 1st pic is the file done by WG, where harmonics of 100Hz exist. 1kHz in 44.1kHz sampling means no integer quotient(44100/1000=44.1). Instead, 100Hz is probably used for calculation(44100/100=441) to have integer quotient. The side effect of using 100Hz ends up strange 100Hz harmonics if you use WG. I can find some file-oriented strange harmonics in file 4. File 3 is clean.

One way to generate a clean 1kHz test signal in 44.1kHz/16bit sampling is a conversion from 44.1kHz/24bit to 44.1kHz/16bit with white noise option. This process converts residual harmonics into quantization noise(the 2nd pic). It's more convenient though quantization noise is higher than the theoretical value(-98dB).

I'm afraid you can hear residual noise when music is in silence because your file 3 has a larger noise floor than my 2nd pic by 20dB on condition that your FFT is 64k length. Quantization noise of CD(-98dB) isn't audible. Practically speaking, -85dB is the threshold if it's audible or not. Your setup is probably louder than the threshold. Can you hear residual noise? I guess you have roughly -80dB residual noise.

I am a long way from making anything I can listen to.
I cannot see that my residual noise should be only -80 dB. As I can see it the noise floor is more than 100 dB down .
 
Maybe better to provide yourself with a Login and download
APxWfmGenerator.exe from AP.com, it can generate all sorts of signals in various resolution so you can leave these problems behind.

If it`s still messed up something else is a miss...
Thanks for pointing me to the AP generator.
It is very usefull to make -60 dB in different formats and clean. Unfortunately it cannot produce -30 -40 -50 -70 aso..

But some interesting results here , maybe...

First some pics of residual noise
Pic 1 soundcard residual noise shorted input
Pic 2. NoDac on no input

The next 3 pics are AP generated -60 db 16 bit. The harmonics keeps changing in magnitude as seen in the three examples.

The last pic is AP generated -60 dB 24 bit and here the harmonics keeps their level steady.
 

Attachments

  • shorted input.jpg
    shorted input.jpg
    157.9 KB · Views: 239
  • No dac on, no input.jpg
    No dac on, no input.jpg
    161.1 KB · Views: 232
  • AP -60 dB 1.jpg
    AP -60 dB 1.jpg
    165.9 KB · Views: 231
  • AP -60 dB 2.jpg
    AP -60 dB 2.jpg
    159.7 KB · Views: 84
  • AP -60 dB 3.jpg
    AP -60 dB 3.jpg
    164.6 KB · Views: 67
  • AP -60 dB 24  bit.jpg
    AP -60 dB 24 bit.jpg
    157.4 KB · Views: 70
Thanks for pointing me to the AP generator.
It is very usefull to make -60 dB in different formats and clean. Unfortunately it cannot produce -30 -40 -50 -70 aso..

But some interesting results here , maybe...

First some pics of residual noise
Pic 1 soundcard residual noise shorted input
Pic 2. NoDac on no input

The next 3 pics are AP generated -60 db 16 bit. The harmonics keeps changing in magnitude as seen in the three examples.

The last pic is AP generated -60 dB 24 bit and here the harmonics keeps their level steady.

Way to go: no more 40 Hz-ish intermodulation products:)

AP doesn't generate the other levels but isn't the volume control active in JRiver to mimic those levels? I always use hqplayer and with it you have the option to activate/use it or not. The idea is that there's a standard test for that level so it's easy to compare a dataset against another dac or person, but you might want one 20 dB higher or lower yes just for your own insight.

The 0 dB FS is related to what the industry has agreed upon as seeing as the maximum level, for that format. When converting a signal from pcm to dsd the level has to be lowered because dsd doesn't do well when there exist a large number of 1's or 0's in succession, which would be the case when pcm would just plainly be converted to dsd. So 0dB pcm, a standard test signal, would without adjustment in level, convert to a clipping dsd signal. Nothing more.

I don't know how JRiver converts pcm to dsd and if it always automatically lowers the signal 6dB in level or not, before converting it to dsd, but I do know that any 1 bit no-dac, by nature, goes into clipping when fed too many 0's or 1's in succession. The result is easily observed by an increase of 3rd, 5th, 7th and so on harmonics, but even orders go up as clipping does.
From your 0dB measurement it looks as if there are no odd order products, but e.g. a -3 or -6dB test signal most likely show way lower 2nd harmonics. They usually do.

Anyway, you mentioned earlier having higher 3rd order distortion while not lowering the 2nd order by using the balanced flip flop, now you say that's not the case?

If you're interested in the background of levels there's a Grimm Audio paper that describes these issues better (and more accurate, so I just read;-) than I can, it's under "DSD Faq" at
Publications | GrimmAudio
 
Thank you for the compliment! It took me a large part of my spare time for about three and a half years, but then again, I wasn't in any hurry. Basically I used it to learn more about modern digital design techniques and about switching circuits with valves, among other things. I knew about sigma-delta modulator design methods, but I didn't know Verilog, had never used an FPGA board before and my knowledge of FIR filter synthesis was quite limited (I only knew inverse-DFT techniques, Parks-McClellan didn't ring a bell).

I use the DAC quite frequently and regarding the sound, I certainly like it - see https://www.diyaudio.com/forums/digital-line-level/166807-dac-gallery-24.html#post5067748 for a more detailed comment. Late last year I took it to a luisterdag of a Dutch audio forum ( 24-11-2018 : Alphen -> AfterBabbel - Pagina 8 - forum.zelfbouwaudio.nl ) and the people there seemed to like it as well - even people who normally only listen to non-oversampling multibit converters because they neither like digital filters nor sigma-delta modulators.



If have no experience with it either, but if there is a difference in bit pattern due to an embedded pulse width modulator or something like that, I guess you should be able to see that by looking at a few hundreds of bits.

Knowing how microphonic, noisy (hummm) and finicky tubes can be (and differ per brand etc), I can only imagine the number of problems you must have ran into, not even mentioning the whole software and fpga part.

Hats off :)
 
Anyway, you mentioned earlier having higher 3rd order distortion while not lowering the 2nd order by using the balanced flip flop, now you say that's not the case?

[/url]
I think you misunderstood me. I was observing this lowering of the 3. order harmonic when using only the Q out on the 74hct74.
So I decided to go with the SE version and then changed the 74HCT74 to an 74LV1GC79 instead to see if the higher speed of the LV1GC made a difference, but it did not.

So it was not the speed of the FF, but using it as balanced FF that changed the spectrum.
 
Member
Joined 2017
Paid Member
Not sure what you mean by that. It is uncontroversial that some people can hear if CD recordings are undithered. What is unsettled is how much below that that the limit is.

If your max playback level is 100dB, -98dB quantization noise means 2dB, which isn't audible. If you can boost the max level up to 110dB, 12dB can be audible. But I don't think 110dB is acceptable to your neighbors.:)
 
Member
Joined 2017
Paid Member
I am a long way from making anything I can listen to.
I cannot see that my residual noise should be only -80 dB. As I can see it the noise floor is more than 100 dB down .

You need to calculate square-root of the sum of squares when you want residual noise from FFT plot. The noise floor of FFT doesn't mean RMS of residual noise. If your FFT is 64k length and bandwidth is 20kHz, 40dB is rough value to be added to the noise floor, i.e. -120(noise floor)+40=-80. This calculation is usually very complicated. Many software does calculation instead of you.
 
I think you misunderstood me. I was observing this lowering of the 3. order harmonic when using only the Q out on the 74hct74.
So I decided to go with the SE version and then changed the 74HCT74 to an 74LV1GC79 instead to see if the higher speed of the LV1GC made a difference, but it did not.

So it was not the speed of the FF, but using it as balanced FF that changed the spectrum.

Aha, that explains it, my bad!

Speed should matter more at the -40 to -60 dB range, but I've said that already.

I'm still curious why the -60dB is so unstable. My problem once was that the analyzer didn't show the really low range (sub 50Hz or so). It turned out there was so much noise that the measurements at really low levels started to behave erratic. Changing analyzer settings helped fix this fortunately.
 
If your max playback level is 100dB, -98dB quantization noise means 2dB, which isn't audible. If you can boost the max level up to 110dB, 12dB can be audible. But I don't think 110dB is acceptable to your neighbors.:)

Hearing is not linear enough to draw such a conclusion. It is already well established and generally accepted from published studies that some people can hear 16-bit quantizing noise, and at much lower volume levels than 100dB. In fact, 100dB would be likely too loud to hear it, IME. At some point loud sound becomes deafening and is counterproductive to hearing small details, again IMHO.

Since we know some people can hear 16-bit quantizing, we may as well start to trying to understand how that can be.
IMHO, what makes very low level artifacts audible or not depends on their correlation with what is being listened to at a somewhat higher volume level. Distortion of a sound being listened to is highly correlated and thus recognizable by at least some people's brain processing. OTOH, a brass band buried at -80dB is not audible since it is completely uncorrelated with higher level music that is being listened to. Again, IMHO.
 
Last edited: