RAAT to a computer's private zone

Now that RAAT (née Roonspeakers) is released to partners that can build special devices, and is supported in build 94, will we also get the ability to stream to hitherto private zones on other computers than the remote I’m on? I recall this being mentioned.

Anders, unless I’m mistaken, the actual RoonSpeakers is what you’ll need, and there was this note about it in the latest build release notes:

With RoonReady products on the way, the underlying RAAT protocol is now a stable 1.0 product. This means we’re now hard at work on packaging it up for our RoonSpeakers apps and for Roon’s Linux version. Along with our phone remote apps this work is now in full swing, and we’re looking forward to providing further updates as we get closer to release.

Hi Anders,

Yes, it’s been a consistent goal of RoonSpeakers that hitherto Private Zones on a Remote will be accesible to another Roon installation. In the case of iOS there have been no Private Zones and these will be created by RoonSpeakers.

It may be that we can cajole @brian into telling us a bit more about the implementation of RoonSpeakers:

Will RoonSpeakers run as a separate app from a Roon installation running on:
(a) iOS ;
(b) other operating systems ?

Will Private Zone continue to be a meaningful term ? How will a Private Zone differ from a Networked Zone ?

RoonSpeakers actually never handles audio personally. It’s a configuration manager that enumerates devices, exposes configuration capabilities to Roon, and then manages a copy of RAAT (Roon Advanced Audio Transport) for each enabled device.

This two-layered design might shed some light on why RoonReady devices came out before RoonSpeakers–while both are based on RAAT, hardware products don’t need configuration management–they have static configurations based on their audio hardware. So we did RAAT first, got RoonReady to market, and now we are circling back and finishing the software side of the product.

RoonSpeakers is all about packaging/configuration/UX. It’s certainly less acutely challenging work than designing network protocols for synchronized high-res audio playback on home networks, but there is a lot of work in getting packaging, configuration, and UX right too.

There are two ways to install RoonSpeakers:

  • It comes with Roon
  • It can be downloaded and installed separately

Roon will automatically start RoonSpeakers in the background to provide access to local audio devices. In this manner, it is going to replace the pre-existing mechanism for talking to local audio devices. It’s also going to add new capabilities that we built as a part of RAAT, like software volume control, zone linking, and a lot of small, but low-level, changes that will make Roon friendlier to more hardware setups.

You can also run RoonSpeakers separately from Roon. Perhaps you want the machine to present audio zone regardless of whether Roon is running. Perhaps the device you’re running on (Raspberry Pi or iPhone) can’t run Roon, so the only way to have RoonSpeakers is as a standalone install.

If you run RoonSpeakers separately and also start Roon, the infrastructure will do the right thing and make sure one copy is running, sort of as if it were a system service.

Ok, so now RoonSpeakers is running. What can you do with it? Well, basically the same thing you can do in Settings -> Audio -> Connected Devices today. Enable/disable audio devices and configure their settings. Any RoonSpeakers instance can be configured from the Roon UI. When you enable devices, they show up in Roon as zones.

It’s possible to make any RoonSpeakers-based zone private by checking off a checkbox. Private, in this context, means "this device can only be controlled from a Roon UI running on the same machine as the device.

Despite the architectural shuffling going on here, the user experience for the existing use cases barely changes. Setting->Audio will get a slightly more generalized design that reflects a hierarchy of machines->devices instead of just a flat list of devices, and we’ll add a few extra settings, but will mostly work the same way as it does now.

Private zones are just local zones with the private setting enabled. They can be made non-private by un-checking the box, and they can be made to exist even when the remote is not running by telling RoonSpeakers to run at boot. Any RoonSpeakers-based zone can exist in any of these three states.

In terms of priority, the minimum viable RoonSpeakers product is Windows/Mac/Linux (including ARM/Embedded). Finishing RoonSpeakers for Linux enables Linux RoonServer to be released, since unlike Mac/Windows, Roon did not have a pre-existing audio stack for linux, so it’s waiting for RAAT. Android,iOS implementations will follow, probably in a later release.

An iOS RoonSpeakers app is feasible and planned. I can’t say for certain that that app will work properly while running in the background, since Apple’s Backgrounding rules are quite severe and we don’t exactly fit any of the profiles for background activity that they support. If it can be done, we’ll do it, but that’s something that we will work out during the implementation process. As always on iOS, Apple makes the rules, those who buy their products chose to live in a walled garden, and we do our best within the limitations.

(Aside: I think it’s going to be called RoonSpeakers, but there is a chance that we will rebrand it before it launches…there has been some debate over the name. Personally, I really like it, but every once in a while someone mistakenly assumes that we intend to manufacture speakers. So we’ll see what happens. Regardless of the name, the technology is going to work the same way).


I can see the potential confusion - especially if you do eventually decide to make/market speakers :wink: (why not?)

Out of interest, why not just RoonReady or RAAT for everything? Roonzone maybe. Im sure there’d be no shortage of suggestions if you wanted them. :wink:

Great explanation above btw.

Thanks Brian, that’s really helpful and very interesting.

To me RoonSpeakers naturally suggests a networked device with an active speaker; like a Sonos Play.


A post was split to a new topic: Help us rename RoonSpeakers