by robertzombie » 12 May 2016, 07:38
I just want to re-cap here to make sure everyone is on the same page. Not sure why the Hifi Berry DAC+ keeps getting mentioned as I don't own one.
The RMAA test file is a series of tones and pulses that tests the frequency response, dynamic range, noise floor, THD, stereo separation, and IMD of a digital playback device (e.g. a DAC, CD player, iPod, soundcard). Anything that performs a digital to analogue conversion and has analogue outputs.
Archimago has proved that, as long as the digital device streaming the digital data (laptop, CD player, music streamer) to one externally connected DAC is bit-perfect, . My laptop can send the RMAA test file over USB to my DAC (Rega DAC-R) and the test file will be accurately recreated when captured by my recording software. The only limitations being those imposed by my DAC, not the appliance used to serve up the digital information. I can do the same test with my CD Player, feeding the DAC via coaxial, and get the same results. If I were to swap the DAC, I would get different results.
When I connect the Pi to the DAC (with software volume control disabled) over either USB, or Coaxial from my Digi+, an issue occurs whereby the digital signal appears to be peak limited. This results in the THD and IMD test signal being truncated, thus causing the 15% THD results. If the Pi were rendering the digital information correctly, the DAC would give the same output as with any other digital renderer. The only reason why the DAC's output would change is if there were a change in the digital data it receives. I have shown that this issue occurs independently of the HiFi Berry product. I have also replicated the exact same results with: my USB drive unplugged from the Pi, using ethernet, wifi with ethernet unplugged, with wifi and bluetooth disabled, different power supply, various bit depths and sample rates, and with Volumio as well as RuneAudio. The issue must surely reside at the Pi's i2s stage or earlier.
I have found that, by enabling software volume control and setting the Pi's volume to 89%, the issue with the altered test signal goes away and the results in RMAA look normal for my DAC. However, by doing this you are essentially removing 2 bits of resolution from the signal. Using the RMAA 16/44 test with the Pi at 87% (the sweet-spot, see results up-thread) gives a dynamic range output of 85 dB which is the equivalent of 14 bits. Disable the volume mixer (so output is 100%) and you get ~16 bits of resolution, but 15% THD.
So, my question is: Is the Pi doing something at the i2s (or earlier) rendering stage that results in a clipped signal? I would be inclined at this point to say 'yes' as, to repeat what I wrote earlier, the analogue output of a single file from a single DAC should be exactly the same - regardless of the device used to render the digital information to it - so long as that rendering device is operating in a bit-perfect fashion.
Last edited by
robertzombie on 12 May 2016, 09:27, edited 3 times in total.