Jump to content
Computer Audiophile
  • The Computer Audiophile

    iOS Roon Audio Endpoint With iPeng - Almost Perfect

    Fairly recently Jörg Schwieder, the creator of iPeng, announced a really cool add-on to the app. The add-on, or in-app-purchase, enabled an iOS device to turn into a Roon audio endpoint. Yes, I know Android devices can be Roon endpoints without any hoops to jump through, but due to Apple's rules, the Roon team hasn't enabled this feature yet for iOS. 

     

    This is actually a really cool feature. I've been streaming audio to my Android Pixel phone for a while now and I love that Roon sees it as a Roon endpoint. Now, I can do the same with with my iPad. Not sold on this yet? In addition to streaming audio to your iOS device, say out in the backyard, it's also possible to connect a USB DAC to the iOS device and stream directly from a Roon core to iOS and a DAC. 

     

    I was talking to David Solomon of Peachtree Audio about an upcoming event we are doing in Atlanta (stay tuned for details), and I told him about using iPeng to make an iPad a Roon audio endpoint. He immediately connected his iPad to a Peachtree nova150 and flipped out. Seriously, he was super happy. There are many more use cases for this, even if it's not the ultimate in high end, knuckle dragging audiophiledom. 

     

    However, all is not perfect in the Roon audio endpoint / iOS device world just yet. I did several hours of testing and discovered an issue. Fortunately Jörg has been really cool to communicate with and is looking very hard into what may be happening. More details below. 

     

    roon.PNG

    Roon sending audio to iPad Air 2

     

     

     

    What you need

     

    To make this work, you need:

    1. Roon running with the Enable Squeezebox Support option enabled. 
    2. The Roon iOS app running on an iPad or iPhone or iPad Touch.
    3. The iPeng 9 iOS app with.

     

     

    Initial Setup

     

    The initial setup is very simple. As I mentioned, enable Squeezebox support within Roon on the Setting > Setup tab. 

     

     

    enable-sb-support.png

    Roon > Settings > Setup > Enable Squeezebox Support

     

     

    Launch iPeng and complete the iPeng Playback in-app-purchase for $4.99. I'd show screenshots of this, but I've already purchase it and the option is no longer available. Once this is purchased, iPeng displays a menu item that says Roon App. Tapping this, displays a large With to Roon App in the main window. Tapping the Switch to Roon App icon, launches the Roon iOS app. 

    Once the iOS Roon app is launched, go to Settings > Audio and look for the Squeezebox heading. Under this heading your iPad should be displayed and say iPeng. Enable this device and you're now ready to send audio to an iOS endpoint. 

     

     

    ipeng.PNG

    iPeng with Playback in-app-purchase installed

     

     

     

     

    audio-devices.png

    Roon > Settings > Audio > Enable iPad/iPeng endpoint

     

     


    The Caveats

     

    I've had terrific success sending 16 bit / 44.1 kHz audio to my iPad Air 2 from a Roon ROCK. The success has been largely whel I select the music for playback on the iPad itself in the Roon app. Switching to my desktop Roon remote app and trying to send audio to the iPad has given me mixed results. Sometimes the audio plays and sometimes it doesn't. 

     

    Back to the issue I found through my testing. At 16/44.1 the iPeng / Roon / iOS combination is bit perfect. Meaning, the bits are sent from the Roon core and output to a USB DAC unaltered. Unfortunately, when playing 24/88.2 and 24/96 music, something is altering the bits. Currently iPeng doesn't support sample rates over 96 kHz, so my testing of these was only to see if the music was downsampled and played, which it did nicely. 

     

    Back to the supported sample rates up through 24/96. Using a both a dCS Rossini DAC and the combination of a Berkeley Audio Design Alpha USB and Alpha DAC Reference Series 2, I was able to determine that 24/88.2 and 24/96 content is passed to the DAC at 24/88.2 and 24/96. There is no resampling going on, but the bit depth is altered in some fashion. Yes, the audio is still 24 bit, as indicated by the dCS Rossini, but the least significant bit is not being sent to the DAC without alteration, as identified by the Berkeley combination. 

     

    For example, when playing 24/96 audio through the Apple USB 3 camera connection kit and out to the Berkeley combo, all audio is bit perfect when using the FLAC Player app. This app is a standalone app that outputs local music from the iOS device. When playing the exact same music using Roon and iPeng, the 24/88.2 and 24/96 audio is altered after about 3-5 seconds of playback. The first tiny bit of audio is bit perfect, but is soon (3 to 5 seconds) altered. 

     

    Exchanging emails with Jörg, he was eager to identify what was happening. He suggested there could be several areas where this alteration is happening. Here is some of Jörg's email to me (without an confidential details).

     

    1. Volume control. iPeng usually doesn’t apply digital volume control (unlike the Squeezeboxes) but hands over volume information downstream to iOS but iOS might still apply digital volume control, under iOS Apps can’t speak directly to the USB driver. So to be sure output volume should be set to 100% or at least you should test with that setting.
    2. The equalizer in iPeng needs to be off (the default)
    3. The server must not apply any replay gain etc. This is a point where I’m not 100% sure how Roon’s Squeezebox emulation works. I’ll have to look into this, if this is the reason maybe we could just ignore it or something. In the Squeezebox system there are several different gain control mechanisms (and iPeng even has more) that are being applied in different ways. Basic volume control is usually digital (except in iPeng) so changes the data. Then there is an additional replay gain field that’s being used to normalize volume between tracks and to apply fade effects. This is separate from the main volume control and iPeng also uses a separate mixer for it if applied. What makes things more difficult is that this method is also being used temporarily during transitional volume changes, this has to do with the timing of volume changes (the gain information is sent earlier than the volume information which can lag by several seconds) but any effects due to this should be limited to the time during which you change volume. But any differences between how Roon handles these various gain fields and LMS does might make iPeng apply the gain mixer.
    4. Which formats do you use to stream? iPeng currently only supports linear PCM formats (no floating point PCM) and only 24 bit word size and a maximum of 96kHz sample rate, everything else probably will have to be transcoded by the server. 

     

     

    Taking Jörg's advice, I double-checked that all my volume controls were at 100% even the volume controls that didn't have any effect on the audio. With the camera connection kit and the dCS or Berkeley USB devices, the volume has no effect. Per Jörg's suggestion, I also tested Roon sending to a Sonore Signature Rendu SE setup as a Squeezelite endpoint. I was able to send audio bit perfect up through 24/192. This leads be to believe the issue is somewhere in iPeng or the Roon / iPeng combination. 

    At any rate, I'm sure Jörg will figure out what's going on. He is a very capable developer and was very willing to work with me on the issue. 

     

     

    Wrap-Up

     

    The combination of Roon, iPeng, and Roon Remote on iOS is really great for sending audio directly to the iOS device. There are many use cases that cry out for such a convenient way to play music. Audio that is 16 bit / 44.1 currently plays bit perfect when output to headphones directly connected to an iOS device or to a USB DAC connected to the iOS device. I tested this with many DACs including an AudioQuest DragonFly, dCS Rossini, and Berkeley Audio Design RS2. iOS doesn't support all USB DACs, but that has nothing to do with iPeng and Roon. Although iPeng supports audio up through 24/96, I was unable to send this content bit perfect to my DACs. There is some alteration taking place. I have confidence that iPeng developer Jörg will resolve the issue in the not too distant future. Plus, I believe he is working on some great additional features such as higher sample rate support and even DSD. All good stuff.  


     

    Links: iPeng | Roon

     

     

     

     



    User Feedback




    Here's my current issue with VPN and Roon - Roon won't launch unless it's connected to a WiFi network. Thus, when I'm in the car on LTE I can't use this setup. At the coffee shop should be a different story. 

    Share this comment


    Link to comment
    Share on other sites
    3 minutes ago, The Computer Audiophile said:

    Here's my current issue with VPN and Roon - Roon won't launch unless it's connected to a WiFi network. Thus, when I'm in the car on LTE I can't use this setup. At the coffee shop should be a different story. 

     

    You could if you got one of those little cellular WiFi Access Point devices. They were all the rage a few years back... 4G LTE to the 'net, WiFi for all your devices. Boom.

    Share this comment


    Link to comment
    Share on other sites
    3 hours ago, Jeremy Anderson said:

     

    You could if you got one of those little cellular WiFi Access Point devices. They were all the rage a few years back... 4G LTE to the 'net, WiFi for all your devices. Boom.

     

    That won't solve any issues with accessing your core at home.  @The Computer Audiophilereally meant same subnet when saying wifi at home.

    Share this comment


    Link to comment
    Share on other sites
    13 minutes ago, Dr Tone said:

     

    That won't solve any issues with accessing your core at home.  @The Computer Audiophilereally meant same subnet when saying wifi at home.

     

    Actually, I didn't mean the same subnet. That's not a requirement. 

     

    Shut off your wifi on your mobile once, the launch Roon. It won't even launch. 

    Screenshot_20170726-150713.png

    Share this comment


    Link to comment
    Share on other sites
    1 hour ago, The Computer Audiophile said:

     

    Actually, I didn't mean the same subnet. That's not a requirement. 

     

    Shut off your wifi on your mobile once, the launch Roon. It won't even launch. 

    Screenshot_20170726-150713.png

     

    But that's exactly what happens when you turn off your wifi.  Even openvpn doesn't work well unless using TAP and bridging the network.

    Share this comment


    Link to comment
    Share on other sites

    So how about iPeng for Apple TV 😀

     

    Did you guys talked about that as an option ?

    Turning your Apple TV into an endpoint. 

    Share this comment


    Link to comment
    Share on other sites
    5 hours ago, Dr Tone said:

     

    But that's exactly what happens when you turn off your wifi.  Even openvpn doesn't work well unless using TAP and bridging the network.

     

    They obviously added the check recently because they got too many support requests on their forums with people that couldn't talk to roon because they forgot to turn on their wifi or it wasn't set to auto connect.  I know I helped at least one guy with this exact issue, he was cool enough admit to the silly mistake.

    Share this comment


    Link to comment
    Share on other sites

    Thanks for this article, much appreciated.

    Regarding the bit-perfect issue I can confirm what's written in the article. I was a bit surprised to hear about it because I'd been using a similar setup a lot for DoP testing recently (working on DSD playback for the next major iPeng release, hint, hint...). This also requires high sample rates with bit-perfect output but that was with LMS, something seems to be different with Roon.

    The tests mentioned in the article seem to indicate it's indeed iPeng or iOS causing the bit changes, I'm investigating. Since iPeng doesn't seem to have the issue with LMS my current guess is that something is different with gain handling in Roon's Squeezebox emulation so that iPeng uses the gain mixer, I'm sure I'll find out ...

    But for now ... don't expect it to be bit perfect beyond CD quality although I hope that's going to be fixed soon.

    Share this comment


    Link to comment
    Share on other sites

    Great to know. I erased iPeng9 from my iOS devices when I stopped owning Squeezebox. Good to know I don't have to pay for it if I want to try it out. 

    Share this comment


    Link to comment
    Share on other sites

    I've got iPeng running on my iPad and Squeezebox support enabled in Roon. Don't see any option for the  in app purchase.

    Share this comment


    Link to comment
    Share on other sites

    The In-App-Purchase is in "Settings->Enable Playback".
    If you don't see the In-App-Purchase it usually means that either you have already purchased it before (in this case you will then fins an "Enable Playback" switch in "Settings->iPeng Settings") or you have disables In-App-Purchases in the iOS settings on your device.

    Share this comment


    Link to comment
    Share on other sites
    10 hours ago, Jörg Schwieder said:

    The In-App-Purchase is in "Settings->Enable Playback".
    If you don't see the In-App-Purchase it usually means that either you have already purchased it before (in this case you will then fins an "Enable Playback" switch in "Settings->iPeng Settings") or you have disables In-App-Purchases in the iOS settings on your device.

    Thanks

    Share this comment


    Link to comment
    Share on other sites

    Man I am gonna ask a really dumb question, but I will put it out there for those that might not ask.  Does this mean that you are running Roon core on the iDevice with iPeng?  I understood that you had to run the Core on a computer, that computer would act as a server for your tunes and the iDevices would talk to the core allowing you to control the music going to any Roon ready network player in your system?  Just trying to fit the blocks together in my head to see how it fits together and what problem is being addressed.

    Share this comment


    Link to comment
    Share on other sites

    He still needs to have Roon Core running on a server. What it means is that previously you couldn't use the iOS device as the actual playback device (not controller, but audio playback) for Roon, and with this addon/setup, you can. 

    Share this comment


    Link to comment
    Share on other sites

    @firedog, got it!  So the iDevice is playing (rendering) the files from Roon and conveying them via wifi to a networked audio device that does NOT have to be Roon ready!  OK, I think that is it.  Appreciate the feedback.

     

    This is not a ding on Chris, but sometimes I think that we can sometimes get caught up in the lingo of our hobby and wonder why the masses don't get it and adopt our solutions.  Even the fairly savvy like myself can "miss it" sometimes.  I would also offer I could have missed it in reading the article, so sorry if that is on me as the reader.

    Share this comment


    Link to comment
    Share on other sites
    3 hours ago, Booster MPS said:

    So the iDevice is playing (rendering) the files from Roon and conveying them via wifi to a networked audio device that does NOT have to be Roon ready!  OK, I think that is it.  Appreciate the feedback.

     

    iDevice with iPeng is the audio end point and isn't conveying them anywhere.

    Share this comment


    Link to comment
    Share on other sites
    1 hour ago, Dr Tone said:

     

    iDevice with iPeng is the audio end point and isn't conveying them anywhere.

    Unless you use Bluetooth or AirPlay.

    Although at least for AirPlay there would be little point in that since you could use that just as well directly with Roon.

    Share this comment


    Link to comment
    Share on other sites

    Maybe I am just hung up on the term endpoint.  I took @firedog's post to mean that the Core database runs on a computer, you play the files on your iDevice to a wi fi ready/connected component in your system, and the iDevice uses the database info on the computer.  Correct?  No need for a Roon ready component in your system.

    Share this comment


    Link to comment
    Share on other sites

    The music comes out of the iPhone or iPad. Speakers or headphones. Or a USB DAC connected to it.

    That's the idea :)

    And yes, you can redirect that to other devices through Bluetooth or AirPlay but most of the time that's not what you want.

    Share this comment


    Link to comment
    Share on other sites
    1 hour ago, Jörg Schwieder said:

    The music comes out of the iPhone or iPad. Speakers or headphones. Or a USB DAC connected to it.

    That's the idea :)

    And yes, you can redirect that to other devices through Bluetooth or AirPlay but most of the time that's not what you want.

     

    Got it!!  Thanks!  So Solomon was hard connected to his Peachtree with the iDevice.  OK, got it and thanks!

    Share this comment


    Link to comment
    Share on other sites



    Create an account or sign in to comment

    You need to be a member in order to leave a comment

    Create an account

    Sign up for a new account in our community. It's easy!

    Register a new account

    Sign in

    Already have an account? Sign in here.

    Sign In Now

×