Having a somewhat odd network/security setup here, I’d never played with ARC before, but have now tried Tailscale to get around that, and found it surprisingly trivial to get working, so am now enjoying ARC.
I had a couple of questions about its operation, please:
• I can’t see any way of telling, from the Roon server, that an ARC session is currently active, is that right? e.g. if I’m at home, and I start an ARC session on my phone, I seem to have no visibility of that whatsoever within Roon itself.
• if I’m using Roon ARC to listen to something from Qobuz, does the music traffic flow from Qobuz to my Roon server, than back out via Tailscale to my Roon ARC client? Or does Roon server hand-off the music location to ARC, which then connects directly to get the music data?
I don’t believe there’s anything in the Roon UI that shows ARC connections. However, the Roon Server logs show the communication to from your mobile device. If you’re curious search the log files for ‘[mobile]’.
Roon handles all music delivery to ARC - there’s no “hand-off” ala Qobuz Connect or how their official mobile app works.
Edit: removed misleading diagram based on comments below.
I’m too lazy to search for it but I’m sure that in the Qobuz/Tidal case the data streams directly from the Q/T server to ARC after the Roon Server set it up.
Edit: Can’t find anything better right now but am positive this was established when ARC was new
Music Selection: I selected the track “DNM,” and ARC cleared the playback engine of previous tracks to prepare for the new stream.
Roon Authorization: ARC communicates with Roon Server (and Roon Labs) to authorize the session, get streaming parameters, and valid URLs for the Qobuz content.
Cache Verification: ARC checks the phone’s local storage. If the music file is not cached it prepares to stream the data.
Qobuz Data Fetch: ARC connects to the Qobuz content delivery network (Akamai). It begins requesting specific data chunks which are saved into a temporary buffer file on the phone.
Data Processing: ARC and phone work together to:
Update the media session state to Buffering.
Push music metadata (artist, title, album art) to the system notification and lock screen.
Acquire a wake lock so the phone doesn’t sleep while downloading/playing.
Music Playback: Once enough data is buffered, ARC initializes the internal media codec (MP3 lossy in this scenario). The playback engine transitions to an unpause state, and the decoded audio is routed to the phone’s audio output.