rooExtend – The easy start with Roon Extensions

I was just doing my yearly “let’s try to run Roon over Tailscale/Zerotier to access it outside of home” and failing. I get Roon to show, but only my endpoints at home, not my Mac.

I realized: If I had a Roon endpoint that can play audio from Roon, but I can receive the audio from that endpoint on my Mac (just an app kinda like Bridge that spits out the audio from that endpoint), then it’d be effectively the same! Do you think there’s a way RooExtend or another solution of yours could be updated to do something like this, @DrCWO ? I’d absolutely pay for this feature.

Needed a project for this weekend so implemented a basic version of an integration with the knob until the real rooExtend one comes out

GitHub - muness/roon-knob if anyone wants to take a look. Warning: flashing the firmware is not exactly straightforward, but I’d be happy to help folks who want to try.

1 Like

Hi @Shokunin,
What I tried in the past with big success was installing zerotier on my Roon server and on a Mac. After that I can use the audio output of the MAC with the normal Roon Gui remotely.

With newer iOs I also managed to run this on an iPad. More info about that in this thread
Anyway to run Roon on an iphone via a VPN? - Roon Software Discussion - Roon Labs Community

I don’t exactly understand the scenario you described. Please clarify.

Best DrCWO

In our release (we will it call rooOrbital) @Klaus_Engel integrated OTA update during the last days. Do the knob will be updated together with the rooExtend Updates.
But the DIY guys must flash the first firmware. I plan to document this process in a video if our release is ready.

Best DrCWO

1 Like

Exciting! It’s a great little gadget, and I am looking forward to trying rooOrbital! :smiley:

Guten Morgen,
..habe das rooExtend image auf einem Raspberry Pi 3 installiert. Eigentlich funktioniert alles, nur kann ich kein Soundinterface installieren - habe weder Zugangsdaten für root, noch für das Webinterface um da irgendetwas einzustellen. Wo bekomme ich die Daten her, damit ich die Extensions ausprobieren kann?
Ergänzung:
Roon erkennt den Endpunkt mit der eingestellten Soundkarte. Jedoch wird mir in den Einstellungen “Audio Endpoint” keine Soundkarte vorgeschlagen und ich kann keine auswählen.

Die Extension “Audio Endpoint” wäre das, was mich interessieren würde…

:exclamation::exclamation: rooExtend v3.5.0 is out :exclamation::exclamation:

There are a lot of new features mainly for rooMax, rooPlay and rooControl. But also RoonCommand is now part of rooExtend. Please visit the „Version History“ at the end of the Quick Installation Guide v3.5.x for more details.

As rooExtend is Debian Linux based and Debian changed its repository structure the OTA update is currently broken!! This means rooExtend v3.5.0 will not be installed automatically on your rooExtend. To get the new release you MUST apply this Hotfix MANUALLY.

Only after you have done the hotfix rooExtend v3.5.0 will be installed the following night and you can benefit from its new features.

RoonCommandline
As one of the great improvements RoonCommand is now part of rooExtend. With RoonCommand, you can define various actions in Roon via a command line syntax and assign them to buttons in rooMax. Details regarding the RoonCommand syntax can be found here.
RoonCommand must first be enabled in the rooExtend License Manager. After having done that close the dialog of the License Manager and look for the RoonCommand Roon Extension coming up. Also the RoonCommand Roon Extension has to be enabled here. Now watch Roon/Settings/Extensions for a while. There will some quick changes you will see until after a minute the display stabilizes. Now RoonCommand is ready to be used.

Opening the rooExtend Service page you will find a section about RoonCommand and Links to the documentation and the RoonCommand runner. You can enter commands here to test if they work as expected.

If you got a command that woks just open the settings dialog of rooMax and assign it to a button.

rooControl
I added Webhooks here so you can now control your house automation or just some Shelly plugs. I plan to publish a video to show what can be done with rooControl and the updated functionality in rooMax to control your gear.

rooPlay
I’ve adapted rooPlay to use the Roon Relay API. This eliminates the somewhat cumbersome process of creating rooExtend radio stations. rooPlay actions can now be directly assigned to rooMax buttons.
Another advantage is that audio interfaces with a built-in mixer (for example, to select between different sources) can now be controlled via rooPlay.

rooMax
Already mentioned in the text before rooMax has a lot of new feature included. A highlight is that using a RME ADI DAC you can control Balance now. For all other new features, I would like to refer you again to the Quick Installation Guide v3.5.x.

rooSpot
As you know I planned to include a Spotify Connect server in rooExtend. The software is ready to release BUT Spotify offered lossless in-between. First I hoped librespot will jump on the train and also offer that. But it looks like Spotify sent its lawyers and blocked Librespot’s expansion to include lossless audio. So sad. This is why I decided not to include the rooSpot Extension in this release as it still only delivers lossy output.

So this is my first announcement and I’m here to answer your questions regarding the new release.

Just to let you know:
v3.5.0 is - as always - not yet available for the rooExtend-Box. I’m waiting for your comments and bug reports. If the new release proves stable, it will also be released for the rooExtend-Box.

Best DrCWO

5 Likes

Great release. So much to try out with the combination of RoonCommandline and rooMax :slightly_smiling_face:

2 Likes

Thanks for the update @DrCWO!

One question: When I Airplay to RooExtend the Relay “detects” the stream and immediately switches to Rooplay. Unfortunately this seems not to work with the interface input - to get it to work I have to go to settings-extensions-rooplay settings and click save for rooplay to start. Am I missing something?

This is correct. I did not implement a sniffer looking for audio at the input of a USB Audio Interface. This probably can be done but much effort AND it may lead to unwanted activation if the interface gets some hum or noise.

What you can do after starting playback with rooPay from the Audio Interface open the settings of rooMax and assign the rooPlay status to a button of rooMax. After this you can just press the button to start playback from the Audio Interface.

The other way (if you don’t have rooMax) ist to create a special Radio Station for input from the Audio Interface. This can be started with one mouseclick from the Roon GUI. What has to be done to get it is documented in the Quick Installation Guide that you can find my Download Area.

Best DrCWO

1 Like

Hi everyone,

I recently shared my current setup with @DrCWO, and he suggested I post it here as it might be an interesting approach for those looking for maximum flexibility in getting analog and external digital sources into the Roon ecosystem (RAAT) to distribute them throughout the house.

The goal was simple: I wanted my Mac Mini to act as a central “Hub” for everything: My turntable, Spotify (Lossless of course), Apple Music, and other external sources - and send the result as a synchronized RAAT stream to any Roon endpoint in my home, without having to switch between sources.

Here is how I solved it using rooPlay and Rogue Amoeba Loopback plus the Hifime UR23 Toslink to USB converter.

The Concept

Instead of connecting the source directly to the Raspberry Pi running rooExtend, everything goes into the Mac Mini first. The software Loopback mixes these sources and routes them to a physical digital output. This output is then fed back into a Raspberry Pi running rooExtend/rooPlay, which broadcasts the signal as a Roon Radio station.

The Signal Chain

1. The Inputs (Mac Mini)

  • Analog (Vinyl): Turntable → Phono Pre → ADC/Interface (via USB into the Mac).
  • Digital (Apps): Native Spotify (including Lossless, controlled via Spotify connect) etc. running on the Mac.
  • Digital (Hardware): Potential for other dongles via simple USB-Capture cards like the UR23 (Apple TV for Apple Music, Chromecast dongle, etc).

2. The Software Heart: Loopback This is the key component. I use Rogue Amoeba Loopback to create a virtual audio device. It takes the input from the ADC (Vinyl) and the output from the Mac Apps, handles sample rate consistency, and routes everything to a specific USB output on the Mac - without the need to change the source, because it mixes all sources into one output.

3. The Physical Bridge (Mac → rooPlay) This is where the signal leaves the Mac and enters the Roon ecosystem.

  • Mac Output: I am physically connecting the Mac’s USB output to a converter chain.
    • Note: In my specific case, I am using an Audiophilleo MK2 followed by an iFi SPDIF iPurifier2. I simply used this gear because I had it lying around. There are certainly more elegant ways to convert USB to Toslink for this purpose.
  • rooPlay Input: The signal goes via Toslink (galvanically isolated) into a Hifime UR23 (SPDIF Optical to USB Converter).
  • The Endpoint: The Hifime UR23 is plugged into the Raspberry Pi 4 running rooExtend.

Why the Hifime UR23?

I want to highlight the Hifime UR23 here. It supports input up to 96kHz/24bit, making it a very cost-effective, class-compliant solution to get a clean digital S/PDIF signal into the Raspberry Pi. rooPlay recognizes it instantly as a UAC2 input device—no drivers needed. It works flawlessly.

The Result

In Roon, I simply select the rooPlay input as a Live Radio station. This setup gives me maximum flexibility:

  • I can switch from Vinyl to Spotify instantly without changing cables or Roon zones.
  • I get RAAT distribution and DSP features (like room correction) for my analog vinyl setup.
  • I can play Apple Music or Spotify synchronously in every room via RAAT, bypassing AirPlay limitations.

It might look a bit like “Inception” (Audio out → Audio in), but thanks to Loopback and rooPlay, it is incredibly stable.

Maybe this inspires some of you to try a “Hub” configuration!

2 Likes

RooScreen is no longer working (for me). More precisely: since the software was updated to include RooScreen, no images are displayed. No matter what settings I adjust, I only see the software adaptation of the Qlocktwo (Biegert & Funk). The only thing that works is screen rotation. Otherwise, only the Qlocktwo screen is visible. Roon has no problem displaying the images, and the Russell V TV Remote works perfectly on Apple TV.

What do I need to do to get the images displayed again?

If the clock is displayed anything seems to work as it should. To bring up the Roon Art you have to do:

First select the zone to be followed in the settings of rooScreen.


After that playback something in this zone and the roon Logo will appear on the screen.
After that open the volume control in the Roon GUI and click the screen symbol.

In the upcoming dialog select “Start on playback”

and after that clock “Display now”

This will show the Roon Art. Stopping playback and/or clearing the queue will bring back the clock. Also of you turn off the DAC the clock will display again.

So if your rooExtend stays on all the time the Roon Art will be shown the next time you play something in this zone.

I re-tested right now and for me it works as it should :+1:

Best DrCWO

1 Like

I was able to narrow down the behavior. The situation: Roon Rock was switched off overnight. The monitor was also off, of course. The Raspberry Pi with RooExtend is always on. I start the day, switch on Roon Rock and the sound system, and listen to music. A few hours later, I want to see the artist images. I switch the TV to the HDMI input of RooExtend. Since the TV and Roon Rock were switched off overnight, I only see the Roon logo. The screen icon in the bottom right corner is missing. Logically, since Roon Rock and the monitor were off. Using a shortcut on my iPhone, I “Restart Chromium.” Seconds later, I see “qlocktwo” on the screen, and the screen icon in the bottom right corner appears simultaneously. All settings are correct; nothing was changed. Only “Start on playback” needs to be reset. I activate playback, but nothing happens. No Roon logo, no images, but qlocktwo. If I play music continuously, nothing changes for the rest of the day. Except: I pause the music playback for about a minute. When I resume playback, the images appear automatically.

The “Automatic Update” setting in the rooScreen dialog doesn’t change this behavior. Except that I then have the fade-in and fade-out effect with every new track, which I find annoying.

Before rooScreen, I could simply restart Chromium at any time, click the screen icon, and it would work. Now I have to make sure no music is playing before clicking the icon after restarting Chromium. Then it works as described.

Note: qlocktwo is brilliant. If the (currently) gray background could be changed to be as black as the screen, it would be almost perfect. To make it absolutely perfect, the language could also be changed. A friend of mine has it set to Swiss German. More than “nice.” :grin:

Hi @DrCWO Any news on the solution for those people running a pre amp and / or no way to control the volume from rooExtend devices ?
When will rooIR appear?
The end of the year is coming :slightly_smiling_face:

I have to admit I’ve never tested a scenario with the Roon server disabled. That’s definitely not ideal for rooScreen, as it displays “Roon” instead of the artwork when playback starts.
I’ll try to reproduce the issue and fix it if possible. But that will take a while…

As I monitor the selected zone I don’t wonder that this works.

One of the reasons I made rooScreen is the issue in Chromium with Roon that after some time the artwork did not update as it should. With rooScreen Chromium will be restarted after each track change. This is a work around the Chromium bug. During restart you would see the roon logo this is why I dim the screen as long as the roion logo shows up.

I can implement a swich to tun the gray on and off :slight_smile:

Best DrCWO

You’re right, I did announce that. Unfortunately, I’m currently unable to dedicate as much time to rooExtend as I had hoped. Nevertheless, rooIR is only postponed, not abandoned :smiling_face_with_tear:

Best DrCWO

2 Likes

That would be great :+1:

I personally would prefer if “Start on playback” were the default setting. Is that possible?

Me too but restarting Roon this is always off and I can’t change this :sleepy_face:
Best DrCWO

1 Like