Having owned a Raspberry Pi for a few months, I’ve found the experience really refreshing. Despite the limited processing power, the ability to have a silent digital source playing in our front room, with excellent audio quality, has brought our enjoyment of digital audio sources right up there with our vinyl playback. We now have the choice to live with the absolute technical superiority that digital can offer, or the character of vinyl.
Essentially we’re now in a place where we can judge that well-recorded (and mastered) digital recordings *can* exceed the perceived quality of vinyl in many cases.
It’s not been an easy task to get it there though. Our chosen USB audio interface, the EMU 0202 USB, sounds remarkably good at all supported clock rates given its original selling price, but really shines when playing at 192KHz 24-bit. This remains the case even with content originally mastered at 44.1KHz 16-bit. There are two likely reasons for this; firstly increasing the sample rate takes the reconstruction filtering further outside the audible frequency range, giving a cleaner sound (Assuming jitter and other distortions are low enough to not introduce their own issues). Secondly, digital volume control simply retains more information when working in the 24-bit domain than the 16-bit domain. No, it’s not “bit-perfect” – but show me a real-world situation that is outside of a laboratory or computer simulation, then we’ll talk.
Optimising the Pi for playback
I’m now running Volumio 1.4 (still marked as BETA) on our Pi Model B, which brings some speed improvements. So far as i can tell, it also fixes many of the USB issues that I was experiencing with v1.2 and earlier, so playback at all supported samplerates now works without pops and clicks, so long as CPU usage is kept under control.
- My previous mild-overclock settings could manage very listenable audio at 192KHz/24-bit rate without audible clicks, with better sound quality than upsampling to “only” 88.2KHz 24-bit. CPU usage sits at around 65% in the new mode compared with 95% with the previous mild overclock.
- The Web-GUI speed is much improved.
- The massive jump in overclocking gives much-improved definition, especially in terms of dynamics and timing. There are also notable improvements in the stereo image, and finer tonal details exposed.
- I should note that ABX testing is not possible in our rig, so confirmation bias *could* be at play.
- The benefits were maximised when playing with the “Kernel profile” sound quality tweaks, available in Volumio’s “System” menu. I’ve settled on the Buscia profile, both because it sounds perceivably better, but also because it seems to bring the CPU load average down significantly when the same work is being done.
- I had hoped to be able to free up enough power to use the something better than the “Fastest Sinc Interpolator” resampling algorithm, but as yet I’ve not been able to do so as the audio gets too choppy to listen to. I suspect I’ve found the upper limit of what this setup is capable of, unless someone can refactor the code such that all that processing can be carried out by such a low-powered machine.