My Relationship With Music
I've been building my local music library for nearly two decades, amassing over 80TB of lossless files. These have come from friends and all sorts of other mediums: Bandcamp, web downloads, CDs, products acquired at concerts, cassettes, records, imported mini-discs, and so on. Organizing a library of this size is a monumental task, but finding an easy way to listen to it has been rough.
I self-host everything I can, so for something as culturally significant as music, I assumed there were already solid products capable of handling my library. I used Foobar2K in the past for local files, which is perfect as long as you listen locally and assuming your library isn't the size of Jupiter. It's highly customizable, and has been a fan favorite of music nerds since 2002.
The conundrum between owning media and leasing/streaming is beyond the scope of this post, I prefer to own all of my media. No corporation can ever take it away from me. I can enjoy it whenever and however I want. I've never used Spotify, Apple Music, Google Music, Amazon Music, or any other streaming service as my primary source, and I intend to keep it that way. When it comes to my media, I don't believe in the phrase "You will own nothing and be happy!".
That said, this will be part one in a series talking about my experiences with Roon, and how it compares to other self-hosted solutions in an attempt to see if anything else can come close to replacing it.
What Is Roon?
Let's hear it straight from Roon Labs. Here are a couple of brief overviews of the software.
You can buy dedicated hardware for your Roon Core, such as the Nucleus. Alternatively, you can save money by using a spare Windows or Linux computer by installing the Roon Core software. You can also use it as a Roon Bridge, which functions as a network audio endpoint. Personally I run my Roon Core on a Debian 12 VM in my main production network with multiple music libraries mounted via Samba shares.
The feature I use most often is switching between different network playback zones. I can start listening to music on my computer at my desk then seamlessly transfer it to the kitchen, the Onkyo receiver in the living room, a phone on the network, or any device with the Roon Bridge software installed (such a Raspberry Pi with connected speakers). As long as everything is on the same subnet, you can stream music from your Roon Core to anywhere in your home. For on-the-go listening, Roon offers ARC, a mobile streaming app that connects to your Roon Core while you're away (more on ARC later).
Everything sounds great so far.
A Catch - Let's Discuss Cost
Unlike most self-hosted software, Roon is not free. As of this post, you can subscribe for $14.99 per month ($12.99 if paid annually), or purchase a lifetime license for $829.99 if you're a serious fan. Most self-hosters tend to avoid subscriptions when possible, but exceptions are made for standout products like Plex (I have an old lifetime license). Roon is one of these rare exceptions; while I don't have the lifetime license, I do pay monthly.
So, why pay a monthly fee to stream your own music when that money could go toward Spotify, Tidal, or Qobuz? For me, Roon’s features are too good to pass up. While they may not be necessary for casual listeners seeking background tunes, for those serious about their local collection, Roon is worth considering. For a more detailed opinion, I highly recommend this short article from soundstagesimplifi.com.
https://www.soundstagesimplifi.com/index.php/feature-articles/240-is-roon-worth-it
The scale of what Roon can do is insane, and I recommend exploring it yourself to fully appreciate its capabilities. However, it’s not without flaws.
Some Problems...
1 - The Roon Core & Subnets
On a typical home network with one modem, one router, and a single subnet, Roon runs perfectly. Unfortunately, this has been a limitation for me. I have several devices on different networks and subnets within my homelab and ideally, I want all of them to access my Roon Core.
One example is the receiver in my living room, which is on a different subnet than the Roon Core.
When I click "Enable", I can see the receiver power on, but it never connects to the Roon Core, preventing me from using it as an endpoint. My phone and other Wi-Fi devices are also on separate subnets from my main production network, which requires them to be connected to my main VPN.
My home VPN has been the solution to get around this problem. Sometimes, on my laptop, the Roon desktop app (Roon/RoonAppliance.exe) launches and finds the Roon Server, but it can’t see any of my computer's audio devices due to the way the ecosystem is built. Roon has several components, and this issue is caused by the RAATServer service, which helps connect your connected audio devices to the Roon Core.
Other times, even when connected to the VPN, it refuses to connect my audio outputs at all. You either won’t see any outputs in the settings, or when you do, they’ll be stuck on "Enabling...", completely unable to play any music.
My Roon Core VM has two NICs: one connected to my main production network to mount the Samba share where my music is stored, and another for general home devices. Roon currently doesn’t allow you to select which NIC or subnet to prefer. This is frustrating, to say the least.
I'm not a software engineer, and I'm not imposing how I think this ecosystem should behave in any given scenario. I use it in an unsupported environment, as acknowledged by Roon Labs themselves. To be honest, this is an easy problem to resolve, even for someone with a segregated network. For the most part, my always-on VPN allows Roon to work (mostly) without hiccups, aside from a few devices that just refuse to cooperate.
Word of advice: When setting up Roon for the first time, ensure that everything you want to use with Roon is on the same subnet. This will help you avoid these issues.
2 - No Native Linux Desktop Application
This may seem like a stretch for some, but I like to think it will catch the attention of Roon Labs as Linux's market share grows thanks to a growing trend of migrations from Windows to Linux, driven in part by Microsoft's concerning behavior with Copilot and the latest Windows 11 (24H2) builds. People are starting to take their privacy more seriously as Microsoft and Google become more invasive in our daily lives.
While Windows and macOS users have a desktop app for Roon, Linux users are ignored. Roon Labs has stated that they have no plans to develop a desktop app for Linux, nor even a web player or control hub for bridges, instead recommending users stick to supported operating systems. They do provide a Linux package for Roon Bridges and the Core software, so is it really that difficult to port the full application? I understand the challenges of ensuring compatibility across various Linux distros, but why not offer a Flatpak, AppImage, or even a Docker container to simplify deployment?
I've used Linux as my main daily driver for well over a decade and have no plans to change this. Roon Labs' refusal to provide a desktop application for Linux is sad; however, I’ve had success getting it to work with Wine on Arch Linux. For those on other Linux distros, there's a project on GitHub that can help: roon-on-wine, though I can't guarantee it will work for everyone.
I really hope they change their mind and provide a native desktop application for us one day.
3 - Roon ARC - Annoying At Best
This is a make-or-break offering for some users. There are two mobile apps: one is an almost carbon copy of the desktop app, while the other is ARC. Why switch away from mainstream streaming services if Roon can't, at a minimum, match that convenience? Roon's default behavior expects all your devices to be on the same home network, so how do you use it on the go? Enter ARC. Here's a brief overview.
When my phone's signal is poor, I disable the always-on VPN and stop using the exit node back home. I rely on Roon ARC here since I can no longer use the full mobile app.
ARC requires an open port on your home gateway directed to your Roon Core. Expected basic features are there which include shuffling songs, choosing playlists, and navigating artist pages. You can also select the streaming quality, after which the Roon Core will transcode your music. The DSP settings are excellent, allowing lossless music to be streamed in lossy formats to accommodate limited data plans.
One feature I like from streaming apps in 2024 is the ability to download media for offline listening. Tidal and Qobuz offer this as does ARC. However, even after being publicly available for over a year, you still can’t choose where the files are stored on your phone.
Maybe I’m the odd one out, but I like to control where my files are stored on my phone. It’s disappointing that this option still isn’t available after all this time. For a "HiFi" offering, this is an unfortunate oversight.
Here are some other random issues with ARC:
- Sometimes, ARC won’t download music while the screen is off.
- On my partner's two iPhones, ARC can’t connect to the Roon Core when my Pixel 7 has no issues. This occurs on the same non-home Wi-Fi network with VPNs turned off and while the cellular connection is strong.
- There seems to be no native support for external DACs. While my USB-C Beyerdynamic PRO X cable and Scarlett 2i2 work fine, it’s Android handling the sound output, not Roon ARC.
- After around an hour of playback, the app tends to become unresponsive on my Pixel 7, requiring me to clear its cache to restore functionality (perhaps due to my library size).
- Entire albums that are downloaded and included in playlists aren’t visible in the downloaded albums menu; I have to manually find the album to play it instead of locating it in the downloaded list.
- Many people have reported that their devices get quite warm when downloading large amounts of songs.
Other considerations are the UI differences between the main mobile app and ARC. The primary in-home apps have a straightforward layout, and the "everything is a link" philosophy works well even on the smaller screen. In contrast, navigating ARC feels like trying to make your way through a fog of war. This may be an unpopular opinion to some, but spending just a few minutes on the ARC forum reveals countless similar complaints about it's convoluted UI design.
I understand the need for simple interfaces on mobile, but the core design of the Roon desktop app works well and didn't require a complete overhaul just for mobile. While the new design may look appealing in advertisements, it leaves a lot to be desired.
4 - No Library Sharing
Roon will always be a closed ecosystem within your home. In households with multiple users, individuals can create their own profiles on the Roon Core to stream according to their needs. However, unlike Plex (with Plexamp), Funkwhale, Navidrome, and Subsonic and its derivatives, there are no options to share your music library with friends outside of your home network.
Roon Labs surely dislike the idea of someone amassing a library like mine and allowing others to access copyrighted materials for free, essentially turning it into a pirate version of Tidal. Even still, It would be nice to share my music with friends through a public webpage behind a login however, similar to how Subsonic works.
I've considered this option for myself to avoid using ARC, but I haven't been keen on having different setups for my library just my phone. Roon already does most things well enough that I haven't felt the need to explore alternatives until now. Isn't this supposed to be about convenience?
Not being able to share your library with friends is unfortunate, but I understand. Pirates will always find a way and there’s nothing stopping anyone from putting an album into a ZIP or TAR archive then sharing it. This is part of why streaming has become ubiquitous. Why waste time pirating music and hoarding files from Napster clones or private music trackers when you can pay a monthly fee for access to it all (but not really everything in print)? You don't own it, but hey, it's legal, right?
Part 1 Conclusion - Where To Go From Here?
Over the next few months, I'll install, document, and test other music ecosystems in direct comparison to Roon to determine if it truly lives up to my hype. Whether other music suites can offer anything new and fresh remains to be seen. Despite my complaints, Roon is awesome, and there's no denying that it works incredibly well.
I’ve already settled down with Roon, so moving away from it will be a challenge. I don’t expect anything to come close to challenging the Roon juggernaut, but I have an open mind and am willing to try alternatives.
Here are some simple things I need in a new music server:
- The ability to play music on devices anywhere, whether at my desk or on the go with my phone, and the capability to download those files where I like.
- The mobile experience should be better than ARC. It's fair to say this isn't a high ceiling.
- The ability to handle an unusually large library like mine without slowing to a crawl.
- The option to easily share music with friends (optional).
- A mobile app that's actually more fun to use than watching paint dry.
This isn't much to ask for, right?
The first options I plan to try are Audirvana, Plex with Plexamp (since I already own a lifetime license), and Symfonium connected to Airsonic or another shared file source. I'm excited to explore these options and perhaps discover something new.