Skip to main content
Topic: foo_apx - AirPlay for foobar2000 (Read 36658 times) previous topic - next topic
0 Members and 1 Guest are viewing this topic.

foo_apx - AirPlay for foobar2000

I've just released the initial port of my AirPlay output plug-in for foobar2000.

http://emilles.dyndns.org/software/out_apx.html

* Supports a wide range of AirPlay devices and programs
* Streams audio to multiple supported devices over wired or wireless network(s)
* Synchronizes audio streams between multiple devices
* Displays track metadata (title, artist, album, artwork, progress) on devices that support it
* Supports full set of playback operations (play, pause, stop, seek, skip, etc.)
* Plays multiple tracks with no gap between tracks
* Supports remote control
* Supports password-protected remote speakers
* Supports multi-homed (more than one network interface) workstations
* Discovers remote speakers automatically using zero-configuration network protocols
* Supports static configuration of remote speakers for hard-to-locate devices
* Supports international characters for device names
* Supports mono and stereo input
* Supports standard sample rates (samples per second) on input
* Supports standard sample sizes (bits per sample) on input

foo_apx - AirPlay for foobar2000

Reply #1
One more reason to buy an AirPlay speaker, I was already thinking about it anyway.

I will give it a try when I get one, thanks for the component.

foo_apx - AirPlay for foobar2000

Reply #2
Fantastic!! I'll give it a shot when I get home

foo_apx - AirPlay for foobar2000

Reply #3
Soooo...has anyone tried it out?

foo_apx - AirPlay for foobar2000

Reply #4
Soooo...has anyone tried it out?

ugh, i meant to try it last night.

i have an Apple TV already and an AirPort Express coming via FedEx today.
should have an opportunity to try it this weekend for sure.

foo_apx - AirPlay for foobar2000

Reply #5
This component violates the SDK license agreement by implementing core services not described in the SDK. Unless you have Peter's permission to be using those interfaces, at least. (I say that much because the UI Element  interface was originally closed for quite a while, and several close third parties were granted access to the official interface headers.)

Congratulations on being the second person to reverse engineer the output interface, if that is indeed what you did.

I would consider giving this a test, except I don't have any AirPlay compatible devices to actually test it with.

foo_apx - AirPlay for foobar2000

Reply #6
kode54: I can't test it either but I have found the source code at http://emilles.dyndns.org/software/out_apx.html (see the bottom of the page).

As far as I can see the AirPlay output is implemented as a foobar2000 DSP. The plugin is released under the GPL which could be a problem. The implementation also contains minor issues like a not properly generated GUID for the DSP:
Code: [Select]
GUID Output::g_get_guid()
{
    static const GUID guid = { Plugin::id(), 0, 0, 0 };

    return guid;
}

emilles: You should replace this GUID with one generated by guidgen.exe or an equivalent tool.

Additionally, your Output::to_metadata() method calls metadb_handle::get_info_locked, and as far as I can tell you have not locked the metadb at this point. This could lead to a race condition.

foo_apx - AirPlay for foobar2000

Reply #7
interesting thoughts from you both. thanks.
i may steer clear of this plugin for now. my foobar2000 install has been rock solid for the last few years and i wouldn't want to jeopardize it.

thinking of trying Airfoil found it last night, as it should work with Spotify (or any other audio program for that matter).

foo_apx - AirPlay for foobar2000

Reply #8
Strangely, when I installed it on my previous Windows 7 VM, and installed foo_apx.dll using foobar2000 itself, a remote sound option appeared in the normal outputs list, below DirectSound. Unless my brain just had a fart and that's a normal thing to see in the list when running inside a virtual machine.

foo_apx - AirPlay for foobar2000

Reply #9
Only the public SDK is used.  It is indeed a DSP plug-in, not an output plug-in.  The name may be misleading; the core of the code is reused to supply true output plug-ins for Winamp and XMPlay.  I would have preferred to make an output plug-in, but had no desire to reverse engineer or exceed the restrictions of the SDK.  Reverse engineering AirPlay on an ongoing basis is time consuming enough.

I read the SDK license carefully and I don't see any conflict with my code, which is GPL'd, using it.  The SDK simply stated that I operate within the public interface (see sdk-license.txt).  Of the other fb2k components I have used (some open-source), not one has been distributed with any fb2k SDK license or restrictions.  Ironic that I could release as closed-source software and employ closed-source libraries with less complaint.

I'll have a look at the MetaDB issue.  Minor problems are expected as this is the initial release with foobar2000 support.

Also if you'd like, you can test the plug-in out by running something like AirServer or Shairport4w on your PC.

foo_apx - AirPlay for foobar2000

Reply #10
I read the SDK license carefully and I don't see any conflict with my code, which is GPL'd, using it.
The reason I mentioned it is because in the past someone released a component that was using a GPL'ed library. Unfortunately, the author of said library did see a conflict between the GPL and the foobar2000 SDK license and demanded the component to be removed from the web.

Ever since the people on this forum have been wary when a new component gets released under the GPL.

Ironic that I could release as closed-source software and employ closed-source libraries with less complaint.
Indeed.

foo_apx - AirPlay for foobar2000

Reply #11
Soooo...has anyone tried it out?


Yes I did and I'm very satisfied with it  . Now I'm driving three Airport Express (got them cheaply on eBay) and one Raspberry  Pi  .

My system is a Acer Revo 3600 with:
    -
Windows 7  Ultimate 64 bit SP1
- Foobar  V1.2.4
- Out_apx  V4.5
- Bonjour  V2.0.5.0 (Foobar and Bonjour must be installed on the same PC, manually adding  an Airplay device does not work)
- AirPort  Utility V5.5.3 (does not know if it is really needed but for the Airports and it also installed Bonjour)

On Raspberry Pi I loaded Raspbmc (http://www.raspbmc.com/) (Openelec did not work).

Important: using multicasting Bonjour is quite sensitive to firewall and Wi-Fi router configuration, be prepared to some head scraping.



foo_apx - AirPlay for foobar2000

Reply #12
I've just tested it with my 35$ Raspberry pi and it's working pretty well.

But, i found the 10-25$ expensive.This is the same price as airfoil which makes any software works (useful for your internet browser for example)
I think I would have take it for 2-5$ though.

Another question is: What happens if we have different PCs with different foobar on them, is it 25$ for each ? Or once we buy a license we could use it for each and everyone ?
Sorry for the bad english, I'm french .

foo_apx - AirPlay for foobar2000

Reply #13
I cant seem to find the dll file in the zip files available for download... Am i misunderstanding something? Any help would be appreciated...

I've just released the initial port of my AirPlay output plug-in for foobar2000.

http://emilles.dyndns.org/software/out_apx.html

* Supports a wide range of AirPlay devices and programs
* Streams audio to multiple supported devices over wired or wireless network(s)
* Synchronizes audio streams between multiple devices
* Displays track metadata (title, artist, album, artwork, progress) on devices that support it
* Supports full set of playback operations (play, pause, stop, seek, skip, etc.)
* Plays multiple tracks with no gap between tracks
* Supports remote control
* Supports password-protected remote speakers
* Supports multi-homed (more than one network interface) workstations
* Discovers remote speakers automatically using zero-configuration network protocols
* Supports static configuration of remote speakers for hard-to-locate devices
* Supports international characters for device names
* Supports mono and stereo input
* Supports standard sample rates (samples per second) on input
* Supports standard sample sizes (bits per sample) on input

foo_apx - AirPlay for foobar2000

Reply #14
Thanks for the plugin emilles, two questions:

Using it with foobar2000...

1) Can I send the music to multiple speakers at once?

2) Can I send different lossless music other than ALAC? For example FLAC?

If the two don't work with the foobar2000 plugin, which one should I use to do both?

foo_apx - AirPlay for foobar2000

Reply #15
Thanks to the new SDK, you may opt to implement this as an output component instead of a DSP, or as both.

foo_apx - AirPlay for foobar2000

Reply #16
This is a minipoll.

Does this work reliably for anyone ? Here v4.9 with foobar v1.3.5 on Win8.1 64 works quite unreliably  It does not exactly make me want to pay 25USD until I know for certain that the developer is active and willing to listen to bugreports. Is there a better place to report issues than this thread ?

foo_apx - AirPlay for foobar2000

Reply #17
It does not exactly make me want to pay 25USD until I know for certain that the developer is active and willing to listen to bugreports.

Exactly my problem. I've asked about the codecs and about the multi room stream various times without ever receiving an answer.

foo_apx - AirPlay for foobar2000

Reply #18
Hi
Does anyone know how to avoid the window pop-up "No remote speakers are selected for output." at restart of Foobar. I do not always want to send a stream to my AirPort Express.
By the way I cannot get in touch with Eric Milles, the developer. Could someone share some contact details. For one reason or the other I cannot post on his blog.

foo_apx - AirPlay for foobar2000

Reply #19
This is fantastic and works perfectly for me! (streaming to an Apple TV from a Thinkpad Laptop).

I just paid for an activation code, though, and haven't received anything?

foo_apx - AirPlay for foobar2000

Reply #20
Just wanted to add, I got my activation code after about an hour, just got stuck in the pipes I guess. Great stuff, still working perfectly.

foo_apx - AirPlay for foobar2000

Reply #21
Just got a Chromecast Audio, which supports Lossless streaming. Any chance to add support for this device?

foo_apx - AirPlay for foobar2000

Reply #22
Quote
Just got a Chromecast Audio, which supports Lossless streaming. Any chance to add support for this device?


Yes, that's what i'm searching for too....

Re: foo_apx - AirPlay for foobar2000

Reply #23
Does this plugin also work as an Airplay reciever?

The reason I ask: I always listen to podcasts on my iphone on the way home from work, and want to continue listening to the same podcast on my computer when I get home. This would be easy if I could just switch my iphone airplay over to play through foobar, but so far I've yet been able to find a way to make it happen.

Re: foo_apx - AirPlay for foobar2000

Reply #24
I'm currently evaluating this and can't figure out how to adjust the delays to individual Airplay receivers to sync the playback.  Across the 3 Airplay devices I'm using there is as much as a 2 second variance while sending music.

I'd also be very interested in a version that supports Chromecast Audio.

 
SimplePortal 1.0.0 RC1 © 2008-2019