Roon Tap: full fat Roon on-the-go and in second home

A use case that’s come up here a few times before: accessing Roon over VPN (Teleport/Wireguard, Tailscale) works well for connecting to the server, but since mDNS does not propagate, the zone you’re holding/sitting in front of cannot be used. I know there’s Arc – but it’s mobile only and a bit eh… different. Sometimes you just want the full flavored stuff. :slight_smile:

That’s exactly why I baked Tap for Roon: a small app running on a Raspberry Pi, leveraging Roon Bridge for zone control (so the zone stays local to the server) with loopback via ALSA. An extension monitors play state and launches a hosted raw PCM stream (with minimal buffering and a gentle drift control). On the remote device (now: iPhone, Mac) a companion app (Ear) captures and plays the stream (at full quality and aware of sample rate / bit depth changes).

The extension also passes on artwork, metadata and play controls – so the basically headless app shows this info on the Now Playing lock screen, with play controls controlling the Roon zone (pretty cool on iPhone). :slight_smile:

Second part of the story could be this: a second Pi the second home, auto-connecting to the Tap stream upon play and passing on the stream to a connected USB DAC of choice. Two homes, one core, one Roon.

The first part is finished: I use it daily at work to use Roon with my AirPods (did I say it supports auto play/pause when in and out of the ears already?). Any interest in the second part?

6 Likes

Impressive! I can’t wait to hear what comes next… :slightly_smiling_face:

The second part is trivial – I just need a second PI.

And come to think of it – a second home. :wink:

Just added a mobile Tap serving Opus 256 kbps. Bit of a data saver – 96/24 (or worse) is a bit heavy in low bandwidth situations (not to mention data usage :-)).