iOS device - iPhone, iPad etc. as an audio playback device

No, not at this time, you can with an Android tablet.

Russ

Hi,

The iPad (due a technical limitation, see below) can only be used as a Roon remote device right now… no Roon audio… yet.

https://community.roonlabs.com/t/roon-1-2-can-the-ipad-or-iphone-now-stream-music-or-not/9553/5?u=carl

So let me be the annoying one… Others have done this. iPeng was able to allow playback of music streaming from LMS and thus act as a Squeezebox endpoint. While I’m sure there is a good technical reason why Roon cannot do so, it’s not clear why. Is it hoped as a futures, or is it simply not possible?

@mdconnelly,

Did you read the information from Brian in the link I posted?

Roon is written using Xamarin, a cross platform development framework/toolset, and there is an issue with audio playback specific to this framework and iOS. Using Xamarin allows Roon developers to have one code base that compiles to many platforms instead of having completely different code bases and associated development languages for each platform. Xamarin vastly improves the Roon Developer’s efficiency.

iPeng is written in Objective C using native Apple frameworks.

I think I read the issue has been made aware to the Xamarin/Microsoft team, I don’t remember seeing if @brian mentioned if it’s fixable and an eta on said fix.

The technical issue is pretty straightforward: Xamarin’s garbage collector pauses threads regardless of whether they are running managed code or not. This interferes with the threads playing the audio and causes dropouts. In theory their cooperative mode garbage collector will avoid this problem once it’s stable, by only pausing managed threads.

The problem would exist on Android too, but Android’s application model is more flexible than Apple’s, so we can sidestep the issue by running the audio playback in a segregated process that does not use Mono/Xamarin.

I’m sure a simple “hello world” style program could accomplish stable audio playback using the Xamarin frameworks. The trouble comes when you put the Roon UI in the same process with audio playback.

So there are two ways out: Apple loosens the restrictions, or Xamarin/Microsoft finish a big redesign of the garbage collector and make it stable enough for apps like Roon to adopt the new one. We monitor Xamarin’s progress as they make releases. When we turn on the new GC, Roon becomes very unstable. So at least for now, it’s not ready yet.

1 Like

I knew there had to be a good technical reason. Hopefully Xamarin ultimately does tackle that big job (not holding my breath on Apple). But having spent 40 years in IT and software development, I totally understand the benefits of the approach you’re taking.

@carl - sorry I didn’t see the link until after I posted the question. Doh!

No worries.

1 Like

Playback on an iOS device can be accomplished in the Apple ecosystem using a piece of software called Airfoil on a Mac and an app called Airfoil Satellite on the iOS device. Both are sold by Rogue Amoeba, a long-time Mac developer. They produce a number of useful audio utilities for the Mac. It is definitely an inelegant workaround, and it certainly does not provide the highest quality audio experience, but with a solid wifi network in my house, it usually does the job for me when I don’t have access to my usual listening setup. (darn kids!)

1 Like

I ended up ditching my iPad Pro and buying a new MacBook Pro 13". Done! The new 13" looks gorgeous and has even better Audio then the iPad Pro. Best Solution ever.

OK, not an option for everyone, i guess.

I’m new to Roon and haven’t figured out how to get output from my iPhone through headphones while using it to control the Core. I thought that would be easy but apparently it cannot be done, you can only use a phone as a controller. I would think that somehow, with a smartphone, one ought to be able to get both control and output from within a home WiFi network (if not from anywhere in the world.)

The platform Roon develop on (xamarin) is the issue apparently. Quite what and why it’s taken them (xamarin) so long to fix it only Roon/xamarin can tell us. I know it’s a priority for Roon so it can’t be an easy fix…

If xamarin/microsoft can’t provide a fix soon, perhaps Roon could consider writing a native iOS app that is only a RAAT end-point with simple controls. Keep the remote separate. Not ideal, but it would be better than nothing.

3 Likes

There has been no public announcement about implementation of Output under iOS. To avoid people re-discovering this thread and asking if the position has changed we will close the thread pending such change. When an announcement is made we will link it here also.

Version 9.3 of the iPeng app now enables play to an iPad Zone from Roon as a Squeezebox server. You must purchase the iPeng app ($8.99) and the in app Play upgrade ($4.99) and enable Squeezebox support in Roon. This is a third-party app not a Roon implementation, but it is working well for me.

2 Likes

Works really well, I use headphones with a Lightning cable/DAC/amp:

This was added to Roon in 1.4:

1 Like