Note: I originally posted this on 25ms.org, a blog that started my journey into the world of audio and JackTrip. I’m reposting it here in case it may be useful to others.
I received my first shipment from HiFiBerry this weekend: two DAC+ ADC Pro boards. I ordered these on May 14th and Modul 9 shipped them from Switzerland the next day, so it took roughly two weeks for them to travel across the globe to the San Francisco Bay area. I was worried that it may be difficult to source a large enough quantity of these boards from an international vendor, but I am no longer concerned.
I should disclose that I am already biased in favor of HifiBerry, having bought many of their audio boards over the past several years for streaming music around my home. They are one of the most established companies that sells Raspberry Pi audio parts, and I have always been impressed by their craftmanship. These boards are no exception; everything about them screams quality.
At $64.90, these are also the most expensive audio devices I’ve tested so far. HiFiBerry sells a less expensive model at $49.90, but I wanted to try the best first. I also opted for the nicer steel case at $27.90, which looks awesome. My only complaint about the case (besides its price) is that the last assembly step of trying to align the 40 I2C pins is a bit tricky. The second time around definitely went smoother.
I ran all the same full round-trip loopback tests today on Raspbian (stock kernel, not real-time) as described in my previous post about the Audio Injector Stereo. Like the Audio Injector, this HifiBerry board had a very low 4ms loopback latency measurement using a 2ms buffer with Audacity.
Below are the test results using my EC2 virtual machine, alongside previous measurements for the Audio Injector and Sabrent USB devices. I didn’t bother running any tests using my LAN server.
Client Devices | Hz | FPP | Latency |
---|---|---|---|
Sabrent USB | 48k | 128 | 57ms |
Audio Injector Stereo | 48k | 128 | 47ms |
HiFiBerry DAC+ ADC Pro | 48k | 128 | 39ms |
Sabrent USB | 48k | 256 | 79ms |
Audio Injector Stereo | 48k | 256 | 76ms |
HiFiBerry DAC+ ADC Pro | 48k | 256 | 76ms |
Audio Injector Stereo | 96k | 256 | 37ms |
HiFiBerry DAC+ ADC Pro | 96k | 256 | 40ms |
Audio Injector Stereo | 96k | 128 | 27ms |
HiFiBerry DAC+ ADC Pro | 96k | 128 | 26ms |
Full round trip test results using a remote server running in EC2
The numbers compare quite well, but what impressed me the most was how incredible this board sounds. Unlike the Audio Injector, it has a proper pre-amp mic booster on board that sounds great when paired with a Behringer Xm8500, and tons of alsamixer controls and toggles for this and many other features I didn’t delve into.
I’ve been using this Audacity test method to measure latency. As sound passes through several digital/analog conversions along the way, it naturally gets distorted from the original waveform. In measuring other devices, I discovered that this distortion (and the introduction of additional noise) sometimes made it difficult to determine if point A in one waveform was really the same as point B in the other waveform. I’d have to take several different measurements to build confidence, and even with that I felt there was a degree of fudge in the numbers.
What totally blew me away about the DAC+ ADC Pro was that not only was there very little noise, the waveforms appeared to be nearly identical. This speaks volumes about the high quality of this board. It impressed me so much that I had to take a screen capture to show what I mean.
Using Audacity to measure 96k with 128fpp
That’s 26ms for two trips over the Internet with multiple DAC/ADC conversions along the way, and barely any perceptible noise or distortion. This is studio quality, lossless sound! Amazing!