RAAT and clock ownership

A RAAT streamer never adds an source of clocking discrepancy.

Instead of thinking of the streamer as an extension of the device, think of RAAT as an extension of Roon that gives Roon a presence on the streamer.

The reason for this: Stacking multiple layers that pull data from each other does not create new clock sources so long as the data flow is controlled by the last layer in the stack.

RAAT does insert an extra layer (or 5, see below) of “pulling”, but there are many other layers of “pulling” that are also just left out of the discussion. That’s because adding layers of “pull” to a system is fundamentally benign. Extra clock sources arise when someone in the middle of that data flow decides to start pushing data at their own speed.

In RAAT’s architecture, there is no pushing, ever, going on in RAAT or Roon during single-zone playback.

(During multi-zone playback, one of the zones “pulls”, and Roon “pushes” to the remaining zones using to the clock recovered from the first zone to control the rate. This is unavoidable, since there is no way to force multiple independent clock sources to agree, so in that case we need to use drift compensation techniques like those I described above.)

Just to give you an idea of just how many layers actually exist (100% chance this is incomplete and reductive):

  • Dac clock
  • USB interface on the device
  • USB driver subsystem on the streamer
  • Audio driver subsystem on the streamer
  • RAAT application on the streamer
  • Internal buffer within RAAT
  • Network subsystem within the streamer
  • Ethernet cable
  • Network subsystem within the player device
  • Roon application within the player device
  • Internal RAM-buffer within Roon application
  • Network subsystem on player device
  • Network router in your house
  • N more routers on the internet
  • TIDAL’s load balancer for distributing content
  • Network subsystem on TIDAL’s content server
  • Application on TIDAL’s content server
  • Disk subsystem on TIDAL’s content server
  • SATA interface hardware on TIDAL’s content server.
  • SATA interface on an individual hard drive
  • Cache/Buffering system within the hard drive
  • I/O scheduler within the hard driver
  • Magnetic read head within the hard drive

If we aren’t worried about the fact that data is being pulled through all of those layers, we shouldn’t be worried about the fact that it’s being pulled through RAAT, either.

6 Likes