RAAT to a computer's private 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).

4 Likes