Minimum network speed (uplink) for Roon ARC?

Do you know what minimum uplink network speed is required to run Roon ARC without downloading ?

It depends on whether you want to stream lossy, CD quality, or hi-res. And whether you want to stream from your Roon Server or Tidal/Qobuz, of course. Once you know this, you can quite easily calculate the minimum required bandwidth. Then add some on top to provide headroom when the internet link might fluctuate.

This is what ARC uses for streaming from the Roon Server (stereo):

Setting Resolution / bit rate Bandwidth required
Hi-res 24 bit, 48-192 kHz With 24/192: 24 bits * 2 channels * 192,000 per second = 9.2 Mbit per second. With FLAC compression (60% size) = 5.5 Mbit/second
CD Quality 16 bit, 44.1-48kHz 16 bit * 2 channels * 44,100 per second = 1.4 Mbit per second. With FLAC compression = 0.85 Mbit per second
Balanced (lossy) 320kbits/s = 0.3 Mbit per second
Bandwidth Optimized (lossy) 96-128kbits/s = 0.1-0.13 Mbit per second

To be on the safe side with fluctuations, you may want to add a third or double it (depending on what you can get / want to afford). (Edit: plus some for transmission overhead of various kinds, maybe 25% or so)

If you want to stream from Tidal/Qobuz, then the connection to the Roon Server only needs small bandwidth for authentication and getting metadata. The actual audio stream comes directly from Tidal/Qobuz and depends only on your cell data connection. This translates to data rates as follows:

What do the playback quality settings mean?

  • Original Format
    • Files: The original file will be transmitted to ARC and decoded/played on your device
    • TIDAL: The highest quality format allowed by your subscription will be used
    • Qobuz: The highest quality format allowed by your subscription will be used
  • CD Quality
    • Files: The original file will be transcoded to 16bits at 44.1kHz or 48kHz
    • TIDAL: ARC will request CD quality FLAC from TIDAL.
    • Qobuz: ARC will request CD quality FLAC from Qobuz
  • Balanced
    • Files: Lossy files will be transmitted to ARC in original format. Lossless files will be transcoded to 256kbps Opus
    • TIDAL: We will request “High Quality” from TIDAL, typically this means 320kbit AAC
    • Qobuz: We will request “Standard Quality” from Qobuz, typically this means 320kbit MP3
  • Bandwidth Optimized
    • Files: Lossy files will be transmitted to ARC in original format. Lossless files will be transcoded to 96kbps Opus
    • TIDAL: We will request “Normal Quality” from TIDAL, typically this means 96kbit AAC
    • Qobuz: We will request “Standard Quality” from Qobuz, typically this means 320kbit MP3.

Note that the info in the two tables is not 100% consistent for the lossy part, but the order of magnitude is fine. Info is from:

3 Likes

Thank you very much. For your information, here are my values:

Which means I may be able to go as far as « Balanced (lossy) ».

1 Like

That should easily work, yes.

I’m going to (re)test it because in the past it didn’t work.

According to the second table, for the Roon server case it is actually lower than what I calculated, as it’s just 256 kbps Opus and not 320.

Of course, the cell network throughput that you then get on the phone plays a role as well. It doesn’t help if the upload from the server is fast enough if the download to the phone isn’t

The values I mentioned are server-side.

Yes and that’s why I’m saying that the upload from the server should be fast enough but there is also the other factor if the phone gets enough download throughput in the cell network.

Test :ok:

I have no idea what I’m looking at

These are network traffic curves. The upload rate is close to the maximum, but it’s okay.

Well yes, I understood that. But I don’t know which is which, what the traffic is, what the peaks are, or if it shows behavior where ARC is working or not.

Oh? Okay. The upper part is downstream traffic, the lower part is upstream traffic. The blue lines are the theoretical maximum speeds of my connection. The « little mountains » on the bottom correspond to the start of playback of a new track in my playlist.

Ok, but is it working in this case?
And the downstream to the phone (which I suppose is in the cell network?) is not shown?

Yes, it works. And indeed it’s only the server-side curves which, in my case, is the limiting side. I had a decent 4G connection on the client-side but I don’t have the monitoring.

I see, cool then. Interesting to see the pre-fetching/caching behavior, thanks for this