IPB

Welcome Guest ( Log In | Register )

 
Reply to this topicStart new topic
foo_apx - AirPlay for foobar2000
emilles
post Feb 13 2013, 16:23
Post #1





Group: Members
Posts: 11
Joined: 29-March 06
Member No.: 28950



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
Go to the top of the page
+Quote Post
eahm
post Feb 13 2013, 17:56
Post #2





Group: Members
Posts: 1033
Joined: 11-February 12
Member No.: 97076



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.
Go to the top of the page
+Quote Post
NullString
post Feb 14 2013, 17:17
Post #3





Group: Members
Posts: 137
Joined: 23-May 06
From: Chile!
Member No.: 31067



Fantastic!! I'll give it a shot when I get home smile.gif
Go to the top of the page
+Quote Post
joedimagio
post Feb 15 2013, 15:44
Post #4





Group: Members
Posts: 16
Joined: 4-May 11
Member No.: 90316



Soooo...has anyone tried it out?
Go to the top of the page
+Quote Post
mrinferno
post Feb 15 2013, 15:58
Post #5





Group: Members
Posts: 135
Joined: 19-June 07
Member No.: 44533



QUOTE (joedimagio @ Feb 15 2013, 09:44) *
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.
Go to the top of the page
+Quote Post
kode54
post Feb 16 2013, 03:49
Post #6





Group: Admin
Posts: 4579
Joined: 15-December 02
Member No.: 4082



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.
Go to the top of the page
+Quote Post
foosion
post Feb 16 2013, 12:50
Post #7





Group: FB2K Moderator (Donating)
Posts: 4410
Joined: 24-February 03
Member No.: 5153



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
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.


--------------------
http://foosion.foobar2000.org/ - my components for foobar2000
Go to the top of the page
+Quote Post
mrinferno
post Feb 16 2013, 18:18
Post #8





Group: Members
Posts: 135
Joined: 19-June 07
Member No.: 44533



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).
Go to the top of the page
+Quote Post
kode54
post Feb 17 2013, 01:52
Post #9





Group: Admin
Posts: 4579
Joined: 15-December 02
Member No.: 4082



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.
Go to the top of the page
+Quote Post
emilles
post Feb 17 2013, 03:33
Post #10





Group: Members
Posts: 11
Joined: 29-March 06
Member No.: 28950



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.
Go to the top of the page
+Quote Post
foosion
post Feb 18 2013, 09:16
Post #11





Group: FB2K Moderator (Donating)
Posts: 4410
Joined: 24-February 03
Member No.: 5153



QUOTE (emilles @ Feb 17 2013, 03:33) *
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. wink.gif

QUOTE (emilles @ Feb 17 2013, 03:33) *
Ironic that I could release as closed-source software and employ closed-source libraries with less complaint.
Indeed.


--------------------
http://foosion.foobar2000.org/ - my components for foobar2000
Go to the top of the page
+Quote Post
oruam57
post Apr 4 2013, 14:30
Post #12





Group: Members
Posts: 8
Joined: 4-March 11
Member No.: 88695



QUOTE (joedimagio @ Feb 15 2013, 15:44) *
Soooo...has anyone tried it out?


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

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.




This post has been edited by oruam57: Apr 4 2013, 15:11
Go to the top of the page
+Quote Post
Bl@ck_warrior
post May 28 2013, 16:48
Post #13





Group: Members
Posts: 114
Joined: 13-August 04
From: Nīmes (France)
Member No.: 16259



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 ?

This post has been edited by Bl@ck_warrior: May 28 2013, 16:49


--------------------
Sorry for the bad english, I'm french .
Go to the top of the page
+Quote Post
deakkon
post Oct 30 2013, 10:49
Post #14





Group: Members
Posts: 1
Joined: 30-October 13
Member No.: 111304



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

QUOTE (emilles @ Feb 13 2013, 16:23) *
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
Go to the top of the page
+Quote Post
eahm
post Jul 22 2014, 18:34
Post #15





Group: Members
Posts: 1033
Joined: 11-February 12
Member No.: 97076



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?

This post has been edited by eahm: Jul 22 2014, 18:35
Go to the top of the page
+Quote Post
kode54
post Jul 23 2014, 06:42
Post #16





Group: Admin
Posts: 4579
Joined: 15-December 02
Member No.: 4082



Thanks to the new SDK, you may opt to implement this as an output component instead of a DSP, or as both.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 User(s) are reading this topic (2 Guests and 0 Anonymous Users)
0 Members:

 



RSS Lo-Fi Version Time is now: 28th July 2014 - 13:47