Great news: the new Raspberry Pi 4 can now handle DSD512 without issue with full screen output

I just wanted to report some nice news – the new-ish Raspberry Pi 4b can handle streaming DSD512 over USB while outputting Roon display data in Chromium in full screen, with the live lyrics scrolling at a very eye-pleasing 45 - 60 frames per second. That’s pretty damn impressive for a number of reasons:

  • The previous RPi 3b+ had numerous bandwidth and CPU contention issues between the wifi, ethernet, and USB streaming at high DSD rates. Because the RPi 4 has moved ethernet off the terrible USB 2 bus and moved to USB 3 (with roughly 4gbps on it) along with increased clock speed and IPS efficiency, there’s no longer annoying USB audio stuttering as buffers ran out / the CPU couldn’t keep up with the rapid fire interrupts… and this was if the unit was doing nothing else, including not even running a desktop (ie, using Raspbian Lite). Even SSHing to the unit during DSD256 playback could be detrimental (trivia: using wifi on the 3b+ would give you slightly more bandwidth headroom to play with versus ethernet, which is totally backwards). The best I could get out of the RPi 3b+ was DSD over PCM via the I2S pins, and that of course maxes out at DSD single rate.

  • While that’s good enough in and of itself, the CPU bump and RAM speed capability allows it to easily run the Raspbian desktop environment without issue while acting as a Roon bridge. Loading Chromium to act as a Roon display works very cleanly – previously, a 3b+ would take forever to load Chromium and the live lyrics display would move at something around 20fps, if that. It’s actually shocking to see the lyrics scroll by so smoothly now.

This is running with a 4GB RPi 4, netbooted (so no SD card) and connected via USB to a Sabre ES9038Q2M DAC (in an SMSL SU-8) with balanced analog outs. Keep in mind that it does run the RPI’s cores decently hot – load was consistently using 2-3+ cores at all times during this. I actually think you could get away with the 2GB and possibly 1GB model, as my RAM usage never really went over 512MB, despite Chromium being a fat browser. Typical stream rates for DS512 averaged about 47mbps. I’d like to try it with the power over ethernet hat to remove one cable…

Also note that two other browsers I tested - Midori and Epiphany - were unable to scroll the lyrics nearly as smoothly as Chromium’s V8 javascript engine + Blink renderer could; it was typically more in the sub-30 range and looked quite ugly.

For fun, here’s the bandwidth graph of the RPi4 while streaming DSD512:

And here’s the system load of the RPi while streaming DSD512 in orange (the Roon server is in green):

Here’s a video clip of how smoothly the lyrics scroll.

So some good news if you want a capable and extremely cheap RAAT-compatible Roon endpoint, even if Roon can’t get Tidal tracks right.

6 Likes

Great writeup! This is proper tinkering! :slight_smile: