INTERACT FORUM

Devices => Apple iPad, iPhone, iPod, Airplay => Topic started by: jmone on September 16, 2015, 01:57:23 am

Title: Instead of support Airplay directly - How about via Tune Blade API?
Post by: jmone on September 16, 2015, 01:57:23 am
TuneBlade has an API documented here (http://tuneblade.com/Developer/TuneBlade%20Remote%20API%20v0.7.pdf).  This would get around the issue of using any leaked keys but would still give MC:
- Ability to see all Airplay devices as zones and allow pushing audio to them individually or as a group (and in Sync).  MC would push one stream to Tune Blade and instruct it what Airplay devices that it should then push to.
- Potential to allow Airplay clients to see and push audio to MC
- Looks like a pretty simple set of calls (but what would I know).

They seem pretty MC friendly have have even published Hilton's "How To" on their blog.

Is this a good middle soln?  I'm sure myself or Hilton could reach out to them if needed.

Thanks
Nathan

Title: Re: Instead of support Airplay directly - How about via Tune Blade API?
Post by: fitbrit on September 16, 2015, 09:45:06 am
I'd love to see this. TuneBlade is very cool, and generally works really well. I set up someone's home with it, with MC, using only a remote desktop connection and a phone.
I admire your persistence!
Title: Re: Instead of support Airplay directly - How about via Tune Blade API?
Post by: blgentry on September 16, 2015, 09:50:47 am
Tuneblade seems good, except:

1.  It's commercial software that you need to buy.  Not that expensive at all.  But it's maintained by a third party who's not a large vendor (eg Microsoft, Apple, etc).
2.  It only runs under windows.  So Mac and Linux are out.
3.  Since it talks to AirPlay, it *must* be using keys somehow.  Are those purchased keys, or reverse engineered?

Not trying to be negative.  Just sharing my thoughts.

Brian.
Title: Re: Instead of support Airplay directly - How about via Tune Blade API?
Post by: AndrewFG on September 16, 2015, 10:36:25 am
The API does not seem to have any JSON commands to actually play a track to a renderer. It seems that the API is for status monitoring, and simple commands like volume +/-. There seem not to be any commands for Play/Pause/Stop/Next/Prev etc. either..
Title: Re: Instead of support Airplay directly - How about via Tune Blade API?
Post by: glynor on September 16, 2015, 01:28:21 pm
Plus, it is almost certainly broken as of today.

Apple changed AirPlay entirely for iOS 9 under the covers.  When the AppleTV update comes out, I'm sure it'll be broken on that end too.
Title: Re: Instead of support Airplay directly - How about via Tune Blade API?
Post by: jmone on September 16, 2015, 03:47:28 pm
The API does not seem to have any JSON commands to actually play a track to a renderer. It seems that the API is for status monitoring, and simple commands like volume +/-. There seem not to be any commands for Play/Pause/Stop/Next/Prev etc. either..


It grabs the audio once it is rendered to a audio device.  You either use an unused physical Audio Device or they suggest and link to Audio Virtual Cable (a bit like using MC's WDM I guess).

EDIT - So Play/Pause/Stop/Next/Prev etc is done by MC itself to the Audio Device (say Virtual Cable) that Tune Blade then distributes to Airplay endpoints.  From what I can see in the API, it lets you discover and control these endpoints.
Title: Re: Instead of support Airplay directly - How about via Tune Blade API?
Post by: jmone on September 16, 2015, 03:57:31 pm
Brian,  I think your observations are correct, though I would comment that:
-  MC already takes advantage of (TV Guides, Metadata grabbing, etc) or relies on (BD Decrypting) 3rd party, and as we see this does raise the issues of dependence when stuff stops working but unless you are going to do it yourself......  
- I assume they are using the leaked keys but I also understand if MC would want to keep that at arms length (like BD Decrypting)
- TuneBlade is Win based and there are other "Unix" based ports going on now such as "ShairportSync" but who knows if it is any good
Title: Re: Instead of support Airplay directly - How about via Tune Blade API?
Post by: jmone on September 16, 2015, 04:03:36 pm
Plus, it is almost certainly broken as of today.

Apple changed AirPlay entirely for iOS 9 under the covers.  When the AppleTV update comes out, I'm sure it'll be broken on that end too.

I'm not sure what will be broken?  I can ask over a TuneBlade but I'd imaging all the existing Airplay HW/SW will keep working just fine.  Is it just that the new AppleTV will not accept connections from "old" Airplay Device at all?
Title: Re: Instead of support Airplay directly - How about via Tune Blade API?
Post by: AndrewFG on September 16, 2015, 04:15:23 pm
I don't see the point of this discussion. There is an OS update coming. And apparently it means that one part of JRiver's cash generating product range will stop working. So who is going to resolve that? Bet your a** that Apple won't...
Title: Re: Instead of support Airplay directly - How about via Tune Blade API?
Post by: jmone on September 16, 2015, 04:19:22 pm
Sorry - I must have missed something.  What change and what breaks?
Title: Re: Instead of support Airplay directly - How about via Tune Blade API?
Post by: glynor on September 16, 2015, 05:03:49 pm
Sorry - I must have missed something.  What change and what breaks?

Anything that emulates AirPlay cannot receive content from an iOS 9 device. We don't know for sure yet, but it is expected that the upcoming AppleTV OS update will break it in the other direction as well.

More:
http://9to5mac.com/2015/09/11/apple-ios-9-airplay-improvements-screen-mirroring/

It was almost certainly done to fix the issues with AirPlay that have been happening since iOS 7/8, some security issues recently discovered, and I hope maybe as a result of the Cisco partnership (because there has been trouble there for years).
Title: Re: Instead of support Airplay directly - How about via Tune Blade API?
Post by: jmone on September 16, 2015, 05:38:05 pm
I "think" that article is taking about Airplay Mirroring and not the older key exchange required for Audio authentication.  If I've got it right, the original Airtunes spec is still used in the expanded "Airplay" that added video, pics, mirroring etc.  I guess we will see but I don't see that this update will break anything on the Audio side, else.  Imagine the outcry if all those speakers, AVR etc all stopped working.  .... but I guess we will see when reports start coming in. 

Should be easy to test as the kids have iOS devices
Title: Re: Instead of support Airplay directly - How about via Tune Blade API?
Post by: glynor on September 16, 2015, 07:25:07 pm
I know I can't play files, such as podcasts or the music app, to my AirServers (http://www.airserver.com) anymore from iOS 9 devices. Mirroring doesn't work, but neither does simple audio playback.

I suspect authorized devices may be grandfathered in via a whitelist in iOS (possibly against some kind of device side signature or key).  If I was doing it and had to worry about all of those Bose things that aren't going to get updates, that's how I'd do it.

But they didn't authorize any software solutions.  They're all reverse engineered, and I bet they're all broken.

From what the Air Squirrels guy said, it doesn't look like they were locking those apps out (ala sync with iTunes), just changing things and not "protecting" them.

But, you're right, we don't know for sure yet. But this week isn't the time to jump in.
Title: Re: Instead of support Airplay directly - How about via Tune Blade API?
Post by: RoderickGI on September 16, 2015, 08:30:52 pm
All new AirServer brings full iOS 9 and OS X El Capitan compatibility along with YouTube live streaming support

September 2015
http://www.airserver.com/History

Better work. I use AirServer, and my other half habitually upgrades to the latest iOS version without ever checking to see what will be broken by it. "Oh look, new pretty toys!"  ::)
Title: Re: Instead of support Airplay directly - How about via Tune Blade API?
Post by: jmone on September 16, 2015, 10:44:18 pm
FYI - I've asked TuneBlade devs the following and await their advise:

Quote
I've read Apple are rolling out a "redesigned" airplay protocol starting with iOS9 / new AppleTV etc that breaks support for many "3rd Party" Airplay SW / HW.   From what I've read, it seems to be aimed at changes to the authentication method primary for Airplay Mirroring, but there are reports that people are now not able to "see" their traditional Airplay/Airtunes devices one they upgrade to iOS9.

Do you know at this stage if TuneBlade is impacted for either:
- Tune Blade playing to "newer" Airplay Devices
- Tune Aero receiving from "newer" Airplay Devices
Title: Re: Instead of support Airplay directly - How about via Tune Blade API?
Post by: glynor on September 17, 2015, 10:41:30 am
All new AirServer brings full iOS 9 and OS X El Capitan compatibility along with YouTube live streaming support

Yeah. That just came out. I haven't tried it again yet.

Also, isn't AirServer awesome?  I tried the Squirrels Reflector for a long time but video was always flaky. AirServer has been rock solid for me.
Title: Re: Instead of support Airplay directly - How about via Tune Blade API?
Post by: jmone on September 17, 2015, 06:43:08 pm
Back from TuneBlade

Quote
We can confirm that there has been no issues with TuneAero and TuneBlade with the iOS9 update. We'll get the new Apple TV as soon as it's available to verify it's compatibility. Regarding compatibility with any new AirPlay speakers or HiFi receivers, we believe that there has been no problems as we haven't had any complaints.

Thanks,
The TuneBlade Team
Title: Re: Instead of support Airplay directly - How about via Tune Blade API?
Post by: RoderickGI on September 17, 2015, 07:52:56 pm
Also, isn't AirServer awesome?  I tried the Squirrels Reflector for a long time but video was always flaky. AirServer has been rock solid for me.

I also used Reflector for a while, and pretty much decided the technology wasn't ready. Then I read you used AirServer, and as I had a specific task where I wanted to mirror an iPad to my HTPC, I trialled it, then bought it, because it did seem to be ready for prime time use.

I've had a few little glitches, like lag in audio, which meant the sound was out of sync with the action in an iPad game. I couldn't find a way to fix that either. Sound didn't work at all once . . . until the user, she who must be obeyed, turned the sound on on her iPad!  ;D

So yeah, I think it is pretty good. Maybe even awesome.
Title: Re: Instead of support Airplay directly - How about via Tune Blade API?
Post by: glynor on September 18, 2015, 12:03:25 am
Back from TuneBlade

Awesome.
Title: Re: Instead of support Airplay directly - How about via Tune Blade API?
Post by: jmone on October 06, 2015, 06:25:50 pm
Let me have another crack at explaining my proposal:

Background on TuneBlade (http://www.tuneblade.com/):
- TuneBlade is a simple tray utility that lets you stream system-wide audio to AirPort Express, Apple TV, AirPlay enabled speakers and HiFi receivers, and to AirPlay audio receiving applications such as ShairPort, XBMC/Kodi and TuneAero (note: TuneAero is their compainion app that will output an Airplay Stream to an Audio device such as MC's WDM Driver)
- Stream to multiple Airplay receivers simultaneously & Enjoy multi-room audio in perfect sync
- It has a free trial and a full licence costs $9.99 / £6.99 / €8.99
- Has an API to expose and control Airplay devices

Proposal (see pic as well)
1) Use the Tune Blade API (http://tuneblade.com/Developer/TuneBlade%20Remote%20API%20v0.7.pdf) for Airplay Device Discovery and Control:
- TuneBlade API Get Info --> Display as Zones in MC
- Single: Select/Unselect a Zone in MC --> TuneBlade API --> Connect/Disconnect the Airplay Device in Tune Blade
- Linked Zones: Select/Unselect a Linked Zone in MC --> TuneBlade API --> Connect/Disconnect the Airplay Devices in Tune Blade
- Optionally use the API to set the Common Audio Device to use (eg MC's Audio Device for the Zone --> TuneBlade API --> Sets the Audio Capture Device in Tune Blade) but a user can configure this manually if needed.

2) Playback Control:  Nothing needs to be changed as MC will just render the Audio to an Audio Device that Tuneblade is capturing.  Tuneblade then distributes the Audio to the Airplay devices.  It is in effect a Audio Device to Airplay Bridge.  MC will control Play/Stop/Pause/FFD/RWD etc as normal for any Audio Device.

Benefits
- MC Users will be able to play to any Airplay Device opening up a vast range of additional devices (Speakers, Recivers, TV etc)
- Helps expand MCs presence in the Apple world
- Does not require MC to licence, obtain, or code to the Airplay standard
- Uses the same dev principles behind LAV and madVR in 3rd party integration to achive an outcome (and the TuneBlade Devs seem pretty responsive).
- As it would be seen as Std Zones, Remotes on Andriod and IOS will also be able to push content

Costs & Downside
- Users that want to play to Airplay devices will need to buy and install TuneBlade (but it is reasonable priced)
- MC would need to support the TuneBlade API as a Pug In??? (I don't know how much dev effort it would be but the API looks straight forward)
- TuneBlade only runs on Windows

Thanks
Nathan.

PS - I've also asked the reverse over at the TuneBlade forum (http://www.tuneblade.com/support/QandA.html), if that they would consider making TuneBlade discoverable as a DLNA Renderer
Title: Re: Instead of support Airplay directly - How about via Tune Blade API?
Post by: horse on October 25, 2015, 03:10:11 am
Nathan,

This would be great and would remove a extra piece of code for me. Having the ability to connect and link AirPlay zones from within MC and hence JRemote would be very welcome.
Not sure you mentioned the ability to have TuneBlade discovered through zeroconf. Not that different to SSDP or mDNS. After discovery then add the AirPlay devices as zones just like SSDP discovers DLNA

Today I have a AirPlay Zone in MC connected to a virtual cable that is the tuneblade input. In order for me to control Tuneblade remotely (not with its iOS app) I had to write some Python scripts that run server side so I can automate activities inside Roomie Remote (Simple Control)

With Shairport, TuneBlade, MC, JRemote and custom Python script I can stream to and from MC to various AirPlay speakers and link them to other DLNA, Digital and Analogue outputs. MC being the very heart of the system.
Not completely wife friendly, but not too geeky that it's not usable.

Big vote for this.
Title: Re: Instead of support Airplay directly - How about via Tune Blade API?
Post by: jmone on October 26, 2015, 03:23:36 am
I love your "not too geeky" comment! ...after the full geeky overview! 

I know that Tuneblade are keen to play with MC.... but lets see where it goes (JR have a lot on their plate) but I'm hopeful :) .  I really don't think it is that "hard" as the Tuneblade API is pretty straight forward.  If I knew how to write a real MC plugin (instead of my AHK scripts) I may give it a go myself but I think the real JR'ers would knock it over much quicker.
Title: Re: Instead of support Airplay directly - How about via Tune Blade API?
Post by: rossp on January 24, 2017, 08:47:49 am
- TuneBlade is Win based and there are other "Unix" based ports going on now such as "ShairportSync" but who knows if it is any good

ShairportSync works great and I use it on my RaspPI3+. MC22 on my windows 7 machine, tun eb lad e  connects to two windows laptops and my RaspPi all in sync.
Great and MC should use the API.

Ross
Title: Bounty: Instead of support Airplay directly - How about via Tune Blade API?
Post by: jmone on February 04, 2017, 03:56:16 pm
FYI - I've started a Bounty Thread up over at Tuneblade to see if anyone is willing and able to write a TuneBlade Plug-in for MC.  Thoughts / Ideas / Contibutions are welcome (please post in this thread - https://groups.google.com/forum/#!category-topic/breakfreeaudio/tuneblade/cBHE1dv64UY )
Title: Re: Instead of support Airplay directly - How about via Tune Blade API?
Post by: Hilton on February 05, 2017, 05:57:04 am
I'd rather give $200 to Jim and team to get then to make it natively integrated... but that's me. :) And it's Apple tech we're talking about, so I know that it aint gonna happen that way!
Title: Re: Instead of support Airplay directly - How about via Tune Blade API?
Post by: jmone on February 05, 2017, 01:36:36 pm
100% agree.