Roon API update

Hello guys,

Discovered Roon last month, and there is so much to love. So, as developer, I planned to tinker a bit.

One of my first project was to build some scripts to ensure that my favorite artists, albums and songs were correctly synced between Roon, Tidal and Spotify. I’m often using Tidal at work, and the sync between Roon and Tidal is less than perfect. I also don’t want to manually fav in Roon.

I took a look at the official APIs. From a developer standpoint, they are quite outdated, not readable, and barely usable.

@Steven_Ickman nice library helps a lot, but I was wondering if Roon was planning an update to its API.

A LOT of things seem missing, and from my point of view it would be only fair to allow users to edit their Roon playlist, favorites, metadata, etc. using automated tools.

I know that maintaining an API is not an easy nor cheap task, been there, done that. However considering the fairly high price point I was really expecting something more … robust, especially on the data management side. Some issues were opened more than 2 years ago (and the repo is not buried under the nb of opened issues).

So :

  • Is there any active plan, after the 2.0 release, to provide a better, more modern and more complete API to your users ? Maybe in the form of a REST API, requiring a secret token from your Core - maybe with permissions thrown in the mix (that’s how I would do it, I don’t really see why a stricter protection is needed here)
  • If not, how could we help as developers? Would you be so kind as to embark a selected - small - crew of devs to develop the external and internal APIs?
  • In the last resort, and I’m shooting in the dark here, but is there any way I could access the raw data from my Roon core, or is that protected too (like the backups seem to be)? At one point, seems like we - as users - should be able to freely access some of that data. I really don’t think it benefits anyone, Roon included, to hide so much.

Kind regards

13 Likes

I know this is an older post, however I also just started playing with Roon and must second this comment.

I put together my own RPI4 streamer running Volumio with a custom UI on its LCD screen. I was hoping to set up the streamer as an Roon bridge to my DAC but I don’t want to lose the functionality I already have with Volumio.

Some way to get at the track information (format / service, bit depth, sample rate) would be greatly appreciated.

1 Like

I was playing with something similar - I run MoOde rather than Volumio but it should be pretty much the same. I wanted some crude display of sample rate/bit depth.

I run MoOde on a Raspberry Pi and use a Neo Trinkey USB RGB module(Neo Trinkey - SAMD21 Download) to signal this - just changing colour like a lot of DACs with indicator lights.

Because the RPi runs Linux I was able to get the bit rate sample depth directly from the native ALSA soundsystem. Basically the code regularly polls the soundcards to find out which one (if any) is playing music (i.e. the code works for both native sound and DAC HATs) and when it finds one it examines the card’s associated hw_params file which contains information about the currently playing stream including bit-depth and sample-rate.

This approach is totally independent of where the stream originated - it works with native music, Spotify*, Qobuz, and with MoOde or Roon as the transports so doesn’t depend on the Roon API.

  • Spotify is currently MP3 only - by the time ALSA plays these they have been converted to 16-bit 44.1KHz PCM streams and are reported as such. I’ve yet to find out where to get the native MP3 rate.

If you are happy playing with Python code I’ll be happy to share - I really must stick it on Github one day.

1 Like

If you could find time to share that would be fantastic… Another person looking to have a helpful display on a remote unit.