Roon as an output channel for other sources? Ugh, but maybe

@Danny What do you think of this crazy idea?

So a friend emailed me some recordings, comparing his new upright bass with the old one. I wanted to listen through my quality headphones or the big speakers, so I started thinking of how I could feed that sound into Roon. I could RDP into the Windows NUC that runs Roon, and select the Meridian USB driver as the system output and start the mail program and play the audio – stupid idea in this particular case, I just saved the MP3 files onto disk on another machine, did some tag editing, and imported them into the Roon library. But it made me think about feeding other sources into my main system. I could feed signal into a USB driver, but not into any of the devices connected over network. Roon is not just an intelligent content player, it has become a device hub. And this hub is inaccessible to any content that Roon does not support as a first-class citizen.

Ok, Roon supports files on storage, and Tidal, and now internet radio. But there are other sources: audio on the internet like YouTube concerts, and people keep asking about Spotify. And what if I have a Tivo box or a cable box and I play a concert there, I can feed that signal into my home theater controller in the living room, but I can’t feed it into Roon so I can’t listen in the other rooms or on headphones. And what if I have another piece of hardware that can generate a digital signal, like a turntable with a built-in ADC, how do I listen to that through the Roon-connected zones? Can’t do it.

So it occurs to me, what if Roon could be configured as an audio output on the computer? That way I could play YouTube or Spotify, provided it’s available on that same computer. And for the other device, if I can figure out how to get it into the computer, I could feed it into Roon. Roon wouldn’t know anything about those sources, and it wouldn’t surface them in the UX, so it would be up to me to live in the Spotify user interface, but once Roon has been told to listen to the audio input, the audio would go out over the Roon zones.

Similar to how we chain Roon into HQPlayer or Dirac, but the reverse.

I should say that I find this very ugly and ordinarily I would argue strongly against it. It is complex and fragile and difficult to troubleshoot – how much of the Audio Output forum is about issues with linking audio streams in computers? And the user experience is ugly, forces switching between the source UI to select content and the Roon UI to select output zone and volume. And I don’t think it is the best business move for Roon to devote itself to the ComputerAudiophile crowd, there is a bigger world out there, we want to see mainstream adoption.

But in spite of my reservations, I imagine this is relatively easy (compared to other stuff you have done), and it would be useful in some scenarios for some people – even for me, even though I avoid computer complexity like the plague.

Have you thought of this? (I assume so, usually when I have an idea you guys are way ahead of me.) Comments?

10 Likes

When we, as the Sooloos team, were acquired by Meridian back in 2008, we proposed this exact product. We called it “the input device” – for example, take your record player’s analog output and route it around your home, and zone group it, etc… basically take telephony (point to point wires) and network it (packetize + route). As you can see, that project went nowhere because we never could get our acquirers to move on such weird hardware.

With Roon, it makes even more sense. There is a realtime nature to the audio, but we have that already with internet radio streaming.

I’ll bring it up with @brian and we can probably get it added to the roadmap now… it’d be pretty sweet to use a USB input on a RPi or Cubox to pull this off.

There is also the solution of a virtual sound card… but I’ve never seen it done right. Devialet’s AIR is a perfect example of what a disaster that solution can be.

8 Likes

Ah, you are thinking of the USB input solution as distinct from the virtual sound card? The sound card is more universal, but apparently more brittle.

Either way, very cool.

You are becoming the preamp of the modern world.

1 Like

@Danny Although without the virtual sound card, Spotify would require an extra box to play.

I would definitely use this on an RPi

[quote=“danny, post:2, topic:11077”]
There is also the solution of a virtual sound card… but I’ve never seen it done right.[/quote]
I wonder whether you count Ravenna as an input protocol amongst these.

I don’t think Danny has experienced Ravenna in person. In my experience, it is very solid and not prone to AIR’s problems. It was engineered rigorously around professional use cases that are much more demanding than what is typical in our space. It is also a very expensive piece of technology to acquire, at least today.

A difference is that Ravenna is ASIO only on Windows–so it is not forced to strictly emulate a sound card in a way that would fool iTunes or a web browser. On Mac they use a CoreAudio HAL plugin, which is close enough to a “sound card” that most users won’t notice the difference, but still not quite the same thing under the hood. Both of these choices help them sidestep some of the typical issues. The Mac one comes with no associated downsides that I can see–but on Windows, Ravenna is limited to working with ASIO hosts as far as I can see.

1 Like

Danny’s comments about the Input device are on point…

From a product standpoint, I want what you’re suggesting, and also more.

There are some technical questions about how to handle latency and video sync. RAAT does do a fair amount of buffering. These aren’t an issue for radio or phonograph sources, but for computer audio or TV’s, it’s more difficult. So is emulating sound cards in a way that is convincing to a wide range of mainstream apps.

There are some really interesting product possibilities that come from supporting mixing in addition to custom input options.

For example, for a desktop/office endpoint product, I really want 2 inputs and 2 outputs:

Inputs:

  • Computer/notification sounds/youtube
  • Music

Outputs

  • Speakers
  • Headphones

I’m not sure this product needs output matrix functionality (i.e. using speakers + headphones at the same time), but I definitely want to hear both notification sounds and music at once. And I want the notification sounds to have no impact on SQ unless they are actually happening. The usual compromise is to use the “OS Mixer” and run the whole computer at one sample rate/configuration, and then normalize everything to that, which means you’re living in a degraded state 100% of the time just so you can hear skype ring a few times a day.

Slaving the notification sound parameters to the format configuration of the music would be an improvement, but the most elegant solutions only become possible when you start architecting hardware around them.

I have thought through another product that does want to use headphones + speakers at the same time for different streams: a bedside radio with integrated headphone amp. If I fall asleep listening to music in headphones and forget to turn it off, I still want the alarm to play through the speakers in the morning to wake me up, even if I left the system “switched” to the headphones zone the night before, and even if the headphones are still playing.

Complicated little problems that require end-to-end product design. The “input device” is a small step in the right direction, but the more flexible possibilities are (to me) more interesting.

(As a side note, everything in my office is plugged into a 16ch mixing board that drives a pair of powered near-field monitors. So everything comes out the same speakers with no switching hassles…but this isn’t a practical setup for most…it has sated my appetite for more polished solutions).

3 Likes

Hmm, my first reaction was that I don’t want notification sounds, they come up only if you think of this gadget as a computer, I want to hide the computerness as much as possible. When I say feeding Spotify into Roon, I think of Spotify as an FM radio, not a computer app. But then you brought up the alarm clock. I see your point, but I would still encourage a simple feed solution first. I think it addresses many valuable scenarios. (One of my sons, the musician, is a happy Roon/FLAC/Tidal user, but my other son uses Spotify so I can’t even give him a Roon subscription to gradually seduce him over to the Light Side.)

1 Like

the way to solve the Spotify issue is to make the Roon “box” support Spotify Connect, and just use Roon to do audio transport.

2 Likes

It would be great if it could act as an AirTunes end point too. Reduces the number of audio devices to support at each play out location.

JRiver offers a WDM option where it can be the default Windows output device for all browser audio. So it is doable.

Does anyone know if any of these ideas are going to hit 1.3?

I’m sitting hear listening to an album on Roon, but a few minutes ago I was streaming internet radio. In between, I really wanted to listen to some audio tracks which I could stream off a music site I was browsing on the web, but there seems no way at present that I could pipe that from my laptop to my floor speakers, without going back to a cord from my laptop to my Nad M51. I would love to be able to select my computer output in the same way that I can select an internet radio stream, from within the Roon remote on my MacBook Pro and have it sent to my Roon server (sonic transporter). Using Roon got me away from always having a cord trailing behind my MacBook Pro as I wandered the house…

1 Like

This would be useful for other automation notifications. I currently bypass roon and hit the hardware directly for audio output, but it would be nice to use roon to be able to pipe notifications to. Since I now have roon endpoints in all my rooms.

With this running on my computer, I create a URL link favorite in lms for my squeezeboxes to play (a PCM stream). Works well and plays anything coming from my computer. When I’m back home I’ll try to test by adding that URL as “an internet radio stream” in Roon and see if it works. Can’t think why it wouldn’t.

http://www.streamwhatyouhear.com

Can Roon present itself as a selectable audio device in order to connect third party media players and let these players surf on the Zone strategy of Roon?

For example, I have a desktop radio, an online TV streaming (I am ignorant of what is common around the globe, but on my pc/smartphone, I can stream all the TV channels that are available on the traditional TV). As a third example, I use Media Player Classic Home Cinema.

It would simply be very, very obvious to connect these audio stream to speakers via Roon zones.

It means Roon must present itself as a selectable audio device in the (e.g.) Windows control panel for audio playback.

This would be a very interesting feature and should be a further motivation for a Roon subscription, beyond the Roon/Tidal player.

Now that I have written this, I almost cannot wait to have it! :slight_smile:

Let me put it this way: I would gladly pay Roon an additional $50 one-time-fee for such a feature

I don’t think Roon will support this anytime soon. What protocol do you think Roon would need to use to do this? Look up DLNA and UPNP on the Roon forum for reasons why.

It can be done quite easily, you just need to program Roon with an input selector (one day of coding?) that overrides the normal Roon player when the user requests an external player to be activated.

This is all you need, because at the market there are several third party audio devices. I add a screenshot as example. When Roon can read “default device”, the problem is solved. The best product is the CABLE Input from VB.

As a next step, I assume Roon would like to make its own version, even if that is technically not necessary. These are HiFi virtual devices

I tend to get a little uneasy whenever someone who is obviously not intimately familiar with the code base and architecture of a piece of software claims that adding feature A or B should be easy and only take a little bit of effort and time.

That said: if you are convinced that adding this over four platforms (Win/Mac/Linux/Andoid), five protocols (RAAT, Airplay, Squeeze, Meridian and soon Sonos) and three interfaces (desktop, tablet, phone), taking into account design, development, UI, testing and QA just takes ‘one day of coding’ – by all means go ahead and develop a Roon of your own.

It shouldn’t take you more than a month and I’m sure you’d sell a ton.

3 Likes

It was not meant as a job description, but as an indication of job volume to create specifically an audio input selector. I have done this in Java and the exact same code is working on all the suggested platforms. Code is small enough to be posted here in this reply. IOW, to capture a stream is very trivial.

Then to do “streaming management” in Roon and allow this stream to replace its own media player, I would assume it is quite possible.

Go for it!

1 Like