Raspberry Pi 3 for Roon Bridge
Roon is an amazing piece of software for organizing your local digital music collection and seamlessly expanding your library via streaming selections from TIDAL. The v1.3 update of Roon has been covered well on many sites so I won’t dig into it here, but DSP and convolution plus third party integrations shift Roon into the Must Have category for the modern audiophile.
What Roon actually does has been covered thoroughly on other sites as well. If you have not tried it, I encourage you to take advantage of Roonlabs’ free trial. However, keep in mind that if you only run it on your laptop or desktop PC, you’re not getting the full picture…not even close! No…to really make Roon sing in your HiFi setup, you’re going to need at least two computers, a laptop, a tablet or smartphone, and a local wired + wifi network to tie this all together. It sounds complicated, but I promise that you don’t need a computer science degree or thousands of dollars to build a system that sounds better than you thought it could and is an absolute joy to use.
Although you can run the full Roon stack on a single PC, you’ll get better performance and convenience by running each component on its own dedicated device. I’ll explain why in a bit, but here are the components:
- Core (Roon Server) – a backend process (no UI) that acts as the communications hub for Roon. It does all of the heavy-lifting, including indexing your music library, communicating with 3rd party services like TIDAL and Last.fm, downloading enhanced metadata, upsampling, convolution, and other DSP tasks, and managing devices and zones.
- Output (Roon Bridge or Roon Ready Devices) – a physical (“Roon Ready”) component or backend process (no UI) running on a dedicated computer that routes audio streams from Roon Server to one or more local devices (eg, an attached DAC or speaker)
- Control (Roon or Roon Remote) – the graphical UI that you interact with to find what you want to hear and play it. Also used to manage settings for each zone/device
And here are some of the problems with running all of Roon’s components on a single computer:
- Noise – Laptops and desktops are mechanically and electrically noisy devices. Some are better than others, but just about every computer with decent performance uses one or more fans to stay cool. Some also have mechanical hard disk drives that add mechanical vibrations to the soundtrack. Lots of other internal circuitry make for a very electrically noisy environment. This is not something that you want to have in your listening room if you are seeking high-performance playback. It’s certainly not something that you want to have directly connected to or otherwise sharing the ground plane with your audio gear.
- Convenience – An app running on your smartphone or tablet is a more convenient way to control what’s playing than walking over to the PC or awkwardly fiddling with a laptop that has a 5m cable attached to it. You can control what music is playing in every zone of your house simply by reaching into your pocket and pulling out your smartphone. Queue up an album or two for playback in the main listening room, set your tablet or phone face down, and enjoy playback without distractions.
- Quality – This falls under the category of your mileage may vary; however, at least in theory, feeding a USB DAC from a computer with very low CPU utilization usually results in better sound. Possible reasons for this include less USB jitter, lower DPC latency, and less electrical noise entering the DAC. A general purpose computer (eg., running MS Windows or Apple OS X) has many hundreds of background threads running to keep the system responsive to all of its inputs, to keep software updated and safe from security issues, and so on. All of these background tasks keep the CPU occupied while you would prefer for it to be 100% dedicated to feeding the DAC.
The traditional way to address the Quality/CPU utilization issue is to use a powerful server with many high-speed CPU cores that can handle the background tasks with minimal effect on latency. However, unless this system also employs liquid cooling, it will be noisy, so we’ve traded one problem for another!
A second approach is to run audio specific optimizers or system tuners which disable most background tasks that are not required for music playback. This is a compromise approach that trades some usability for some improved streaming performance and is commonly employed on PCs that can serve as dedicated as media players.
However, as I have suggested, there is a better way: instead of running the media player on one computer, use multiple devices, each optimized for its task.
The device that you attach to your DAC in the listening room must be fanless, solid-state, and completely silent. This typically necessitates using a smaller, low power device, but that’s fine because its only task is to stream digital audio from a LAN connection to an attached USB or S/PDIF DAC. This device ideally behaves like an appliance…connect Ethernet, power, and a digital output cable and it just runs. It should have few configuration options and it should not be burdened with upsampling or DSP tasks. A device in this category is sometimes referred to as a NAA (Network Audio Adapter). Examples include the Sonicorbiter and microRendu from Sonore, but solid-state fanless PCs from Logic Supply, Azulle, and Minix are popular alternatives that, when combined with and OS tuners like Audiophile Optimizer or Fidelizer Pro, can produce acceptable results.
A relatively new entry into the NAA category is the humble Raspberry Pi single board computer (SBC). The Sonore products are actually based on similar technology, but until recently, getting reliable streaming performance from these inexpensive, low power devices required hours of DYI tinkering and Linux wizardry. Thankfully, the following developments have made a once difficult process trivial:
- The Raspberry Pi foundation released the Pi 3 Model B in early 2016 (64-bit CPU with 33% faster clock and 50% faster memory bus than its predecessor)
- Roonlabs released Roon Bridge for the Raspberry Pi shortly after
- DietPi added Roon Bridge to their software installer in late 2016
With these developments, the tedious process of getting excellent sound via this $35 device has been reduced to a set of simple steps that just about anyone with minimal computer skills can follow. I recommend ordering a model that includes heat sinks like the B01KGMMI1A. It comes in a nice little sandwich bag:
Your choice of case and heatsinks depends on if you intend to add one of the HiFiBerry DAC Hats to the device. If you are content with only USB connectivity, the high profile heatsinks I have recommended will keep the device cooler, and the official Raspberry Pi 3 case for $7.75 will do just fine. Peel off the backing from the heatsinks and put them on the two chips of the same size, then snap the Pi 3 board into the case. Assembly is complete. If you’ve ever built your own PC, this process is bizarrely simple!
Before you can boot the Pi, you need to download the DietPi OS image and load it onto a microSD card. This will require another computer, and the process that you follow will depend on what OS that computer is running (Windows, Mac OS X, or Linux). Select the Raspberry Pi from the Download page on the DietPi site. Unlike other Pi distros that are 1GB or more, The DietPi image is under 100MB, so it should download quickly. You can find instructions for copying the image to your card on the official Raspberry Pi site. Although these instructions are for Raspian (the official OS for the Pi), they will work just fine for DietPi: https://www.raspberrypi.org/documentation/installation/installing-images/README.md
Eject the microSD card from your computer, remove it from the SD adapter, and carefully slide it into the small slot on the bottom of the Pi 3. The contacts on the card face towards the underside of the Pi’s board. With the Pi now fully assembled, connect it to a spare HDMI input on your TV or computer monitor. Connect a USB keyboard to one of the four USB ports and run a patch cord from the Ethernet jack to your switch or router. Finally, connect a beefy cell phone charger (5V, 2A minimum) to the micro USB port. If your TV is set to the correct input, you’ll be greeted with some boot messages:
The Pi will go through a couple of cycles of updating itself after you login, and then you’ll be presented with a simple setup menu. Accept all of the defaults, but go to the “Software Optimized” section and enable “Roon Bridge” under “Media Systems”.
If you don’t see this, run dietpi-software:
After another reboot, connect your DAC and your new Roon output should be ready to go. If you have not already done so, install Roon Server on another computer or laptop that’s on the same network. Ideally, this will be a computer that you can leave on all of the time. If you don’t have something like this, consider one of the small fanless PCs that I listed above, but be sure to select one that runs a 64-bit OS.
With Roon Bridge and Roon Server up and running on your network, all that remains is to install Roon or Roon Remote on a device that you can use to control the environment. I recommend installing Roon on a laptop to perform the setup since there are still a few options (like DSP) that are not available on all versions of the Roon Remote tablet/smartphone apps. Once you have the UI running, you’ll be asked to select a zone. Scroll down a bit, and you should see your Raspberry Pi (listed as “DietPi … Linux 4.x”) with one or more devices associated with it:
If you don’t see your DAC listed, try unplugging it and plugging it back in. Use the gears to adjust settings and be sure to give it a name that will help you to identify it. Although I did not do so in this example, it’s a good idea to include the room name in the name you assign to the zone. You may eventually have a bunch of Roon zones, so knowing which room they are in will help keep things easy to use for other family members. 🙂
I’ve found that the little Raspberry Pi Model 3 can keep up with pretty much any DAC. I had no trouble streaming native DSD128 and 352.8kHz PCM:
What’s so great about this setup, again, is that the PC running Roon Server handles all of the CPU intensive work. As you see below, I have the more powerful server PC (an HP Stream mini in my case) applying room correction filters that I generated using Acourate before streaming the results to the tiny Raspberry Pi in the listening room. CPU usage on the Pi is no greater than it would be if I was playing this album without DSP. Separating these functions provides all of the benefits from DSP with none of the noise and jitter downsides. Interacting with the system is a simple matter of reaching for a smartphone or tablet.
If any of this sounds interesting, you may be wondering specifically what bits you would need to set up something similar in your listening room. The most difficult part for most audiophiles is running a wired Ethernet connection. While the Raspberry Pi 3 Model B does have support for wifi, I have not tested it and generally find that a wired connection is faster and more reliable. Unless you really have no choice, save yourself the headaches and have an Ethernet cable run or an Ethernet jack installed.
To set up the system that I have described, you’ll need an external USB DAC that you can connect to the Pi. If you’d like to use your existing DAC but it only has an S/PDIF input, consider adding a HiFiBerry Digi+ Pro card. This $45 accessory just snaps onto the top of the Pi’s main board and adds high-quality COAX and TOSLINK S/PDIF outputs with dedicated clocks. If you don’t yet own a DAC, and you’re not sure that you want to make the investment now, the HiFiBerry DAC+ Pro is a great option with ridiculously good performance for its tiny $45 price. Again, dedicated clocks make the “Pro” model well worth the extra few bucks vs. the other models.
If you have nothing in your (intended) listening room except for electricity, an Internet connection, and a chair, here’s a sample system that I put together to help you get started:
Feel free to exclude parts that you already have or swap out parts based on personal preference, but this should give anyone a decent place to start.
I keep saying it, but this is a really great time to be involved with the audio hobby. Thanks to recent advancements in streaming technology (TIDAL + MQA), distributed media player software (Roon), and digital room correction (Acourate), and small, inexpensive computers (Raspberry Pi 3 Model B) it’s possible to build an audio system that, with meticulous setup, has the potential to outperform traditional HiFi systems which cost many times more. This same digital technology can also help take your existing system to the next level of performance and convenience with minimal expense and effort.
If there’s anything that I can do to help you get setup, don’t hesitate to ping me. I’m “dsnyder0cnn” at gmail.com. Cheers and happy listening!