Just wanted to share that I’ve been tinkering with the help of Claude to get a setup running for both me & my girlfriends Apple Watches.
The goal was simple, or so I thought. Get Roon or ARC working on my Apple Watch. Control and search via it, and be able to get the music through to bluetooth headphones.
It started by drawing inspiration from some existing Roon tinkering projects that are there yet, and trying to expand on what they’ve reported as working.
In a nutshell the setup is as following:
Roon Server running docker with some containers for:
- Extension / Bridge API, so I can send controls to my Roon from the watch
- Reverse proxy and domain so I can connect to it from the outside
- Authenticator service to simplify allowing certain connections within each container
- Shairport to create and host a ficticious airplay zone, one for each watch
Then the flow is as following. Roon detects the airplay zones, this way we can send audio to them. The shairport container exposes this audio in a webstream url through the reverse proxy, which is then shared within the app.
Same goes for the bridge API, the commands we sent on the watches are tunnelled through the proxy to the extension, and this is what gives us remote control, next to the ‘streaming’ audio.
It took quite a few weeks of iterating to get to this point, and it became alot more complex when I tried to add the second watch, or multizone support. The hardest part was to actually fill a queue once you played from a playlist, album or compilation.
The advantage is that I’ve setup a menu structure that fits my personal style of navigating, as I use a lot of playlists, and mostly start from there. As my girlfriend listens a lot through Qobuz, who also don’t have a native Apple Watch app, we’ve made her an easy access to some of her favourite parts of Qobuz too.
There is some room for improvement still, mostly latency and sound quality. But cranking the bitsize up, requires a faster connection or more innovation on how to downsize with MQA for streaming purposes.
Right now I’m quite happy with the place where we sit, and enjoy some phone-free, but Roon-carrying walks with the dog.
If there’s a lot of people interested, I’ll be tempted to spend some more time to get it distributable, but that will require more time and effort.
Will gather some screenshots later this week and update the thread.