Does Roon Core output Files (Flac/Wav)? Or PCM streaming?

I’m a bit confused by reading some other topics:

Hope any one can help to clarify the following scenarios:

  1. A Roon Core connects to a DAC by RJ45 cable.
    In this case, I think Core is outputting the File (may trans-code Flac to Wav here?), the DAC receives the file and convert into PCM streaming to DA chips.

  2. A Roon Core connects to a Roon Ready/Bridge by RJ45 cable. And Roon Ready/Bridge connects to DAC by USB.
    In this case, I think core is still sending out Files (trans-code also occurs to Wav), and Roon Ready/Bridge converts the file to PCM streaming and send to DAC by USB with USB Audio Protocols.

  3. A Roon Core connects to a DAC by USB cable.
    In this case, the Core is sending out PCM streaming. Will Core trans-codes Flac to Wav before converting to PCM as well?

All format conversion happens in the core (server)

Roon outputs PCM thats why the stream is that much bigger and Roon is more sensitive to network deficiencies

FLAC and WAV are both containers for PCM, there is no practical difference (apart from better metadata support in FLAC, and storage size, obviously) between them. FLAC to WAV isn’t really transcoding, it’s a straight bit-perfect decompression.

Roon does not output files at all. It extracts PCM (or DSD) from whatever file you do have, possibly applies some conversions if you have Muse configured for that, and sends the raw PCM or DSD bits either over the network protocol (RAAT for Roon Ready devices, Sonos or Chromecast etc. for others) or through a directly connected cable (coax, USB, what not).

If PS Audio is showing something wrong, it’s because they are doing it wrong, there is no WAV file being sent to it.

2 Likes

Or DSD, depending. :wink:

1 Like

Many thanks for all the posts.
But reading Roon Architecture: https://help.roonlabs.com/portal/en/kb/articles/architecture#Roon_Server
it says:
image
So it seems to me that Roon Core/Server is sending out PCM/DSD to next endpoint.

By I also read an article from TAS: A Roon Primer - The Absolute Sound
In this article, it claims that the conversion from music file (Flac, Wav, etc.) to PCM stream is taken inside of Roon Ready devices, NOT the Roon Core/Server.

So I’m becoming confused. Who is wrong? Does Roon Core/Server implement the streaming (convert file to PCM as output)? Or the Roon Ready?

Well, it’s the Absolute Sound that is wrong, of course… :face_with_raised_eyebrow:

Although, to be fair, I suspect you have misread the diagram. That “packet to bitstream conversion” refers I think to receiving network packets and extracting the bitstream info (PCM or DSD) from them. So that interpretation is consistent with the Roon Labs description of RAAT.

2 Likes

What @Geoff_Coupe says. In addition, there is also this documentation that clarifies the design goals of RAAT and why it puts all the file decoding etc on the server and not the endpoint

1 Like

Thanks for your kind reply.
I don’t think I misread the diagram. Under each part of the diagram, it illustrates the functionality of the part.
For example;

  • under NAS Drive. it claims ‘Music file storage’
  • under ‘PC, MAC’, it claims ‘Roon Core, playback software’
    And ‘packet to bitstream conversion’ is under Roon Ready and Analog Stage. That’s why it also lists ‘Digital to analog conversion’.

Thanks. I will read it.

Encapsulation is a fundamental concept that enables data to be stored and moved around a computer network, data is continually being encapsulated just to be unpacked again as it moves around. The data that we’re talking about here is PCM or DSD data. FLAC and WAV are storage formats (yes, we can further encapsulate FLAC files to transfer them), whereas the 7 layer networking stack provides various ways of packing and unpacking data as it is moved around. RAAT is a proprietary protocol that aids in the delivery of PCM or DSD data to our DACs. The Roon Ready endpoint definitely has some unpacking to do however it is not removing the PCM data from a FLAC or WAV file as that is done by the core.

1 Like

That image refers to how Roon works in general, not, RAAT specifically. Second, reading the article there is stuff which is out of date and just… not quite right anymore, so I wouldn’t put my faith in that read at all. Roon is a living growing and changing product. If you have questions, the best place to ask them is here.

RAAT carries PCM or DSD to a RAAT endpoint, also known as Roon Ready, which is different than Roon Tested.

Keep in mind that Roon also uses other specialized protocols other than RAAT to connect to specific hardware, i.e., Airplay, Chromecast, etc. Different protocols can have different limitations or implementations.

For example, one is specifically the Squeezebox protocol to connect to Squeezebox hardware. That setup for Squeezebox endpoints DOES have the setup option to send FLAC and not PCM to the Squeezebox endpoint. This is the only option, I think, for sending FLAC from Roon.

While being wrong would not be out of the ordinary for TAS, the diagram is correct, albeit somewhat misleading for people not familiar with computer networks.

Networks aren’t aware, or care, what data you send through them is. They (at least networks we normally use, and definitely ones used at home for Roon) do not send data as a raw stream of bytes. It is broken down into packets, padded with some housekeeping information about how to assemble those packets into the identical copy of the original data, and only then sent out.

Receiving device takes those packets, looks at that housekeeping information, and assembles them together into a copy of the data that is being sent (it checks for errors, might ask for some packets to be resent, etc. etc.).

However, and that’s where TAS is misleading (understandable, I doubt anyone there knows anything about computers other than that you can press a button and a cupholder will slide out :rofl: ) “packet to bitstream conversion” consists of two entirely different things. First, packets are reassembled into whatever format RAAT uses to send data. This is done by the network stack in the device ,abd it is exactly the same process that it would use for any and all other data that comes across the network. That’s not Roon’s code.

Only after the step above is complete, the data is sent to the Roon client code, and that’s where RAAT data is looked at, audio bitstream is extracted out of it and sent to the DAC, while whatever control commands are also being sent are processed (i.e. you could be changing volume, sending cover art to display etc.). The audio data part of RAAT is pure PCM or DSD though, not wrapped into any particular storage format.

2 Likes

That’s the understatement of the year. I’ve read some real whoppers from TAS. :rofl:

I was trying to be nice here :slight_smile:

1 Like