[SOLVED] Speaker Selection

Forum to discuss MonkeyTunes DACP Server for MediaMonkey

[SOLVED] Speaker Selection

Postby Redth » Thu Oct 07, 2010 4:57 pm

Hi there,

First of all, nice work, MonkeyTunes + Android remote work nicely.

I do have one major feature request, and I have seen some mention of it here and there, but nothing definitive.
I'd reaaaaaally like to be able to choose which speakers to play on. iTunes knows how to find airport express, and other such speakers, and I know it's possible to send audio to these devices, so it would be really nice to be able to do this with MonkeyTunes.

Ideally in TunesRemote+ we could:
- See a list of speakers (Airport Express, Airfoil Speakers) on the lan
- Choose which speakers to output to
- Set volume for each speaker

So, I'm pretty sure technically speaking that this is possible, the only part i'm not sure about is supporting Airfoil speakers as a speaker. I believe the encryption key was cracked a long time ago for sending music to an airport express, but iirc the encryption was not cracked for receiving music from itunes (eg: emulating an airport express). However, since you are coding the server, perhaps it's possible to avoid the encryption and send to airfoil speakers afterall!

At the end of the day, I'd like to be able to use TunesRemote+ to send music from MediaMonkey to my airport express, and to my various instances of airfoil speakers.

Any chance this will happen?
Redth
 
Posts: 15
Joined: Thu Oct 07, 2010 4:47 pm

Re: Speaker Selection

Postby Melloware » Thu Oct 07, 2010 5:11 pm

To send audio out of MediaMonkey you need Output DSP plugins installed.

1. For Airport Express you have to purchase Eric Milles Remote Speakers plugin for MediaMonkey...

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

2. For Airfoil Express it is the same thing, you have to purchase the plugin from Rogue Ameoba...

http://rogueamoeba.com/airfoil/windows/

3. For MonkeyTunes to be able to select these as "speakers" from Remote then both of these would have to expose API's to allow me to control where MediaMonkey is sending the output. Currently none of this functionality is available in Remote Speakers, Airfoil, nor MediaMonkey itself for controlling which DSP output to direct to.

That being said I would love to work with Eric Mille's to incorporate Remote Speakers support right into MonkeyTunes.
=-=-=-=-=-=-=-=-=-=-=-=-=-=-
Melloware Inc.
http://www.melloware.com
=-=-=-=-=-=-=-=-=-=-=-=-=-=-
User avatar
Melloware
Site Admin
 
Posts: 11031
Joined: Thu Dec 01, 2005 10:24 pm
Location: Philadelphia, Pennsylvania USA

Re: Speaker Selection

Postby Redth » Thu Oct 07, 2010 5:26 pm

Melloware wrote:To send audio out of MediaMonkey you need Output DSP plugins installed.

1. For Airport Express you have to purchase Eric Milles Remote Speakers plugin for MediaMonkey...

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

2. For Airfoil Express it is the same thing, you have to purchase the plugin from Rogue Ameoba...

http://rogueamoeba.com/airfoil/windows/

3. For MonkeyTunes to be able to select these as "speakers" from Remote then both of these would have to expose API's to allow me to control where MediaMonkey is sending the output. Currently none of this functionality is available in Remote Speakers, Airfoil, nor MediaMonkey itself for controlling which DSP output to direct to.

That being said I would love to work with Eric Mille's to incorporate Remote Speakers support right into MonkeyTunes.


Ok, I'm not a pro at this, but I think you're missing my point.

First, Wikipedia: http://en.wikipedia.org/wiki/Digital_Au ... entication

The technical possibility of MonkeyTunes streaming to a DAAP client exists. Basically the only piece of the puzzle not solved yet is iTunes 7.x+ DAAP authentication, which means any 3rd party clients can not connect to an iTunes DAAP server. However, MonkeyTunes could embed its own (3rd party) DAAP server which does not enforce the authentication, allowing it to stream to DAAP clients (airport express, apple tv, airfoil speakers). This is what Airfoil currently does. It may not be well documented, but it certainly is possible.

I'm not suggesting you try and integrate with either Eric's plugin, or airfoil directly. I only mention Airfoil speakers as a DAAP client, although, to be fair, I'm not sure if airfoil is 100% DAAP compliant. It would not be the most difficult thing to write a DAAP client or fork some code from the ones available to create an 'airfoil speaker' like app which just sits and listens for audio and plays it when its told.

Anyways, at the very least, it would be nice for MonkeyTunes to be able to send audio to Airport Express (and then it should work with Apple TV too from what I understand). So if I have 5 airport express devices in my house, I could control which of them my MediaMonkey is playing to, and at what volume for each, via TunesRemote+.

Like I said, it's technically possible to do this.

Thoughts?
Redth
 
Posts: 15
Joined: Thu Oct 07, 2010 4:47 pm

Re: Speaker Selection

Postby Melloware » Thu Oct 07, 2010 5:45 pm

You are right I would have to become a 100% DAAP server. THe problem with it is there is no way to tell MediaMonkey to stop playing the song locally while I am streaming it from my DAAP server. At least no good way Ican think of.

So "syncing" what is playing in MediaMonkey to what is streaming out of the DAAP server is the difficult part. I have looked into DAAP in the past and there are a couple of open source DAAP projects out there but the code is a mess and I was hesitant to pollute my code with forked code that is not mine that is very "spaghetti" written. This project specifically is the one I am referring to...

http://github.com/mono/daap-sharp

I guess I could take another look but last I checked this code was not updated since 2006.
=-=-=-=-=-=-=-=-=-=-=-=-=-=-
Melloware Inc.
http://www.melloware.com
=-=-=-=-=-=-=-=-=-=-=-=-=-=-
User avatar
Melloware
Site Admin
 
Posts: 11031
Joined: Thu Dec 01, 2005 10:24 pm
Location: Philadelphia, Pennsylvania USA

Re: Speaker Selection

Postby Redth » Thu Oct 07, 2010 6:03 pm

Yeah I had looked at daap-sharp back when it was first started, but it wasn't at all well documented, and doesn't appear to be much better now. There's an abandoned java project called Get It Together which could probably be leveraged through IKVM, although that's messy at best. There's always going back to the original spec as documented in a few places and doing it from scratch...

Maybe the easiest route WOULD be to try and integrate with Airfoil somehow. I believe their stuff is done in .net (yes even their mac stuff), but without their co-operation it wouldn't work. If they did allow you to integrate via some sort of api, that would increase some sales for them.

I just find it annoying that I have an airport express, a computer with itunes and mediamonkey, and a HTPC computer. I can use all of apple's tech and it works with everything but my HTPC computer. Or, I can use all airfoil tech, but then I can't control which speakers sound goes to remotely. Seems a big shame, and would be great if everything just worked together :)
Redth
 
Posts: 15
Joined: Thu Oct 07, 2010 4:47 pm

Re: Speaker Selection

Postby Melloware » Thu Oct 07, 2010 6:06 pm

I just emailed the Airfoil team to find out if I can from some sort of API...

1. Get a list of speakers Aifoil is currently serving.

2. Send a command to change the current speaker set.

That would allow me to easily implement the Speakers function for Remote. Let's see what they come back with (if at all) :0
=-=-=-=-=-=-=-=-=-=-=-=-=-=-
Melloware Inc.
http://www.melloware.com
=-=-=-=-=-=-=-=-=-=-=-=-=-=-
User avatar
Melloware
Site Admin
 
Posts: 11031
Joined: Thu Dec 01, 2005 10:24 pm
Location: Philadelphia, Pennsylvania USA

Re: Speaker Selection

Postby Redth » Thu Oct 07, 2010 6:25 pm

Appreciate your willingness to look into this.

Just to clarify a bit:

1) You would want to query which speakers airfoil can see
2) Query which speakers airfoil is playing to and the volume level on each
2) Be able to set which speakers airfoil is playing to (you could choose none, 1, 2, 3, 4, etc.)
3) Be able to set the volume level for each speaker airfoil is playing to

I guess I just want to stress that we may want to play to more than one speaker at a time, and at different volumes.

Thanks :)
Redth
 
Posts: 15
Joined: Thu Oct 07, 2010 4:47 pm

Re: Speaker Selection

Postby Melloware » Thu Oct 07, 2010 7:33 pm

Can the current Apple Remote do that? I think it only allows you to choose which speakers are playing music and set the volume of the currently set speakers. I didn't think it allowed you to set it to stream to multiple nor set the volume of each only the currently playing speakerset?

I don't have this setup but that was my understanding of how Apple Remote worked and I have to use the same DACP Protocol that Apple uses and can't do anything other than that. If it can support those features then it can be done!
=-=-=-=-=-=-=-=-=-=-=-=-=-=-
Melloware Inc.
http://www.melloware.com
=-=-=-=-=-=-=-=-=-=-=-=-=-=-
User avatar
Melloware
Site Admin
 
Posts: 11031
Joined: Thu Dec 01, 2005 10:24 pm
Location: Philadelphia, Pennsylvania USA

Re: Speaker Selection

Postby Redth » Thu Oct 07, 2010 7:58 pm

I'm not sure if the normal iTunes setup can, I'm under the impression it can stream to multiple ones at the same time (in fact I'm pretty confident in this), i'm not sure if you can control the volume to each separately over DAAP (again though pretty confident you can).

In any case, if you can get the Airfoil folks to let you control their app, i know you can stream to multiple speakers at the same time with their software, and control the volume level for each.
Redth
 
Posts: 15
Joined: Thu Oct 07, 2010 4:47 pm

Re: Speaker Selection

Postby Redth » Thu Oct 07, 2010 8:01 pm

From Apple's Website:
Cue the speakers.
AirPlay allows you to stream music wirelessly to any speaker connected to an AirPort Express. And there’s no better complement to AirPlay than Remote. All your AirPort Express-connected speakers are displayed on your iPhone, iPad, or iPod touch. Turn them all on or select a few and stream music throughout your house from wherever you’re standing (or sitting).


So, seems pretty clear multiple speakers at the same time is an option.
Redth
 
Posts: 15
Joined: Thu Oct 07, 2010 4:47 pm

Re: Speaker Selection

Postby Melloware » Thu Oct 07, 2010 9:10 pm

Perfect!
=-=-=-=-=-=-=-=-=-=-=-=-=-=-
Melloware Inc.
http://www.melloware.com
=-=-=-=-=-=-=-=-=-=-=-=-=-=-
User avatar
Melloware
Site Admin
 
Posts: 11031
Joined: Thu Dec 01, 2005 10:24 pm
Location: Philadelphia, Pennsylvania USA

Re: Speaker Selection

Postby Redth » Fri Oct 08, 2010 6:18 am

I emailed Rogue Amoeba as well, I'm offering to even write the api listener service and hand it over to them with the api call stubs in place.

Hopefully they are receptive to this idea.
Redth
 
Posts: 15
Joined: Thu Oct 07, 2010 4:47 pm

Re: Speaker Selection

Postby Melloware » Fri Oct 08, 2010 6:26 am

Redth wrote:I emailed Rogue Amoeba as well, I'm offering to even write the api listener service and hand it over to them with the api call stubs in place.

Hopefully they are receptive to this idea.


I hope so too, their product looks kick a$$. I had not really followed what they had going on but it seems their stuff gets great reviews.
=-=-=-=-=-=-=-=-=-=-=-=-=-=-
Melloware Inc.
http://www.melloware.com
=-=-=-=-=-=-=-=-=-=-=-=-=-=-
User avatar
Melloware
Site Admin
 
Posts: 11031
Joined: Thu Dec 01, 2005 10:24 pm
Location: Philadelphia, Pennsylvania USA

Re: Speaker Selection

Postby Redth » Fri Oct 08, 2010 12:11 pm

I'm proposing this as an API to Airfoil:

http://goo.gl/Z4RQ
Redth
 
Posts: 15
Joined: Thu Oct 07, 2010 4:47 pm

Re: Speaker Selection

Postby Redth » Fri Oct 08, 2010 2:00 pm

Made some changes to the API proposal, as I did some digging through Airfoil via Reflector, so I gained a bit of insight into his object model.

Anyways, I've created a simple ApiJsonListener assembly that they could VERY easily use with their existing code to give us what we want, it follows the api proposal I made.

Here is the source code with a demo project to show how to implement it: http://goo.gl/PK0W

It's all VERY simple. I'm emailing them this as well.
Redth
 
Posts: 15
Joined: Thu Oct 07, 2010 4:47 pm

Next

Return to MonkeyTunes for MediaMonkey

Who is online

Users browsing this forum: No registered users and 2 guests