Displaying playback info on Tidbyt

My wife got me a Tidbyt for Christmas. It is basically a 32x64 (I think) pixel display that has apps for all sorts of things. Clocks, weather info, stock prices, etc.

Users are able to write their own apps. I’m considering trying to do this for Roon. I’d like to display artist, track, and album. Seems simple, but I’m sure the devil is in the details. Presumably, I can get the Tidbyt to talk to Roon, as they both have API.

https://tidbyt.dev/

Anyone try this before? Any thoughts or guidance?

1 Like

sounds cool.

32x64 pixels seems super small tho. My apple watch is like 350x450 (approx)

where would you display/use it?

nevermind, I googled it. (Amazing you can do that these days)

this is the thing

Yep, that’s it. I’m assuming I can get my Roon computer and this to talk, but I need to dive into the code for both. In my mind, it is simple … but I’m sure I’m way too optimistic.

well, if you figure it out, absolutely post your findings here.

I’d love to have a “now playing” thing like that, and I didn’t know it existed until yesterday!

I’ve started diving into this. I have half of it working, which means I’m probably 10% of the way there. :slight_smile:

The info I’d really like from the Roon API is:

  • is Roon currently playing to a particular endpoint?
  • track/artist/album for current playing
  • track/artist/album for next in queue

Basically, I only want the Tidbyt to display if Roon is actually playing music. If so, show the current track details. Then show the next track details.

1 Like

1 Like

That’s fantastic! I didn’t get as far into this as I wanted. I pushed out my own simple app (no Roon link) and then got distracted by work.

I’d love to beta test.

I’ve gotten things just about working on the tidbyt and I’m happy to share but it isn’t the easiest install. The problem is you have to use private apis (local roon core) so tidbyt doesn’t really support it (at least easily).

Here are the basic steps
1.) install WSL (on windows only)
2.) install a library that exposes the roon api as a web service
3.) install a library that gives you a call back every time something changes in roon
4.) use the tidbyt sdk to push a webp every time there is an update from step 3
5.) find a way to make this all automatically start up on whatever computer you are using to host all of this

So far I’ve gotten everything to work like I show in the picture with minimal pushes to the tidbyt. I kind of have “up next” working but that is using “not fully released code” from roon and I haen’t quite figured it out yet.

I’ll upload all my code to github this week (at least by this weekend) as soon as I clean the secrets out of it.

If anyone tries the install and you keep good notes on what you had to do to get things working I’ll incorporate that into the install instructions

2 Likes

Did you ever publish your code for this? I’d love to take a look or use it myself.

Just got an ad for this and was wondering if it would work. Doesn’t Roon have a website display feature. Wouldnt it just be as simple as having a browser type app on Tidbyt direct to thr website display?

So I looked into this and ended up even making an app.

Then I found out that the tidbyt apps run in their cloud infrastructure and not on the tidbyt device itself. So in order to get a roon app working for tidbyt in production (on your actual device and easily distributed in their ecosystem) you’d have to require users of the app open a port to a roon api wrapper (hosted on your local network) to the internet, which is a deal breaker in basically every way and definitely not something I’m comfortable with, so I just dropped the pull request and promptly returned my Tidbyt. Honestly, I’d suggest everyone else do the same.

When the company goes under all the devices will stop working anyway. Damn shame they architected it that way instead of running the apps on-device.

1 Like

Does the security concern only come into play if you want to distribute more broadly and make it easy to set up? It seems feasible to do it all within a local network.