Last weekend I’ve decided to ditch Roon for now and go back to LMS.
Strange thing is that, even the LMS software is antique, it beats Roon in a couple of areas.
These are the reasons I went back to LMS which you can also consider as feature requests. If these were fixed, I’d switch back in an instant but for now I’m pretty comfortable using LMS again, especially with it’s new “material” web interface so it doesn’t look so aged anymore.
High CPU usage of Roon core. Running Roon on a Core i5 / 16GB memory + SSD Intel NUC with docker and it has always suprised me that Roon consumes so much CPU and memory all the time, even when completely idle. Completely unaccaptable if you ask me. My best guess (looking at the software in more depth) is that the chosen database model and Mono are mainly causing this. Maybe better look at .Net core to replace Mono ? Simply put, I don’t accept that an idle app consumes 40-80% of CPU, wasting resources and electricity etc. Something is very wrong there. Also noticed a memory leak where memory consumption would rise slowly every day.
No proper API. This will not be a show stopper for most Roon users but I’m a tinkerer, trying to automate (almost) everything in house where I can. From automatically starting the right music at the right time in the right room in the house, to syncing playlists between streaming services. Every descent platform has a proper API nowadays and Roon simply does not. The nodejs library (based on some custom sockets protocol) is not what I call an api. In fact a while ago I’ve decided to write my own wrapper in python for the custom sockets protocol you guys use but a lot is not possible.
- No endpoints to retrieve information, only that insane browse implementation.
- No full metadata can me retrieved, only some basic listings which are pretty useless (composers and artists mixed up for example in the same tag).
- Not possible to manage playlists.
I can go on for a while… It’s 2019 and we at least expect a proper json api (maybe even websockets) to communicate with Roon. A proper rest/json API would also open doors for a proper web interface.
Chromecast issue. Roon limits to 44.1/khz/16bit even though most “Chromecast builtin” devices are capable of doing high res as described here: Supported sample rate of Chromecast builtin
LMS does not have this limitation and allows me to send 96khz/24 bit to my devices.
Metadata/database mess-ups. Too often I get confronted with weird stuff in the database. For example a playlist where a track doesn’t have an artist. I will have to re-add it to the playlist to have the artist appear again. Several small glitches which I can have from opensource stuff like LMS but not for the paid, professional software Roon is supposed to be.
Playlist management. No way to edit playlists on a streaming source like Tidal or Qobuz. You’ll have to choose between creating a Roon-only playlist or do the playlist management inside the streaming provider.
No Spotify integration. Let’s face it, Spotify simply has the biggest catalog and the best algoritms to discover music. It’s just very convenient to have Spotify around for those few music tracks you do not have on Tidal/Qobuz.
These are the things I do not like about Roon, for some these would be small glitches not to care about but for me these are important because of my use cases. Most important to me is not being able to manage the playlists through the api. That way I can sync my music back and forth between Roon, Qobuz, Tidal and Spotify.
I’m a big fan of cloud streaming providers ( I do no longer want all that music stored in house, have to backup and such). I just create playlists with my favorite music and those have to be available everywhere I go. In the house I prefer best quality so I stream with Roon+Qobuz (switched from Tidal) and on the road I use Spotify (which is very good in discovering new music to add to the playlists).
All drilled down I have one very specific feature request: Would it be possible to accept URI’s in M3U playlists? So, I can automatically generate a M3U playlist with tracks containing both local file paths AND Qobuz and/or Tidal URI’s… E.g. qobuz://12234355.flac or tidal://track/12234355
This is actually how I solved it all with LMS. I generate the playlists and it combines the highest quality of each track into one consolidated playlist. LMS understands those URI’s and knows it should play them with the streaming provider.
Even better would be if the M3U file would accept an http URL. That way we can use the opensource Librespot project to enable spotify playback within Roon.
Thanks for reading my rant and hopefully I can switch back to Roon soon. For now it’s disabled and “good old” LMS is back for a while and it just works perfectly fine (except the great userinterface from Roon is now missing).