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. ![]()
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). ![]()
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?


