Someone came through and is getting me an AppleTV - thanks. If you want to be named let me know.
My plans are to have an open source module and basic UI available for two-way AppleTV control and integration into existing designs. Right now I have standard remote pairing with the AppleTV, standard nav control, now playing title/artist/album feedback and cover art feedback support. It will be freely available to download and use under a liberal copyleft license. (I'm still not decided on how much so for this to be.)
If someone does NOT want to distribute source, they can get a license. If someone wants a bug fixed or a feature added, money talks. I doubt I'll get any business with this but who knows...I'll put up a website within the next few days with details of what the module supports, a feature list / todo list / bugtracker, and a download link when I am comfortable with progress.
If you're gonna make it entirely open source I'll help with the layout.
Same here - I'll offer the following if open source. I'm assuming you don't want to distribute the coding tasks.
- testing
- family of TP UI - 7" 8" 12" 15" and/or english tech documentation
- custom art
Re: programming, no, not much. I'll accept bug reports and patches but if it goes to this dual licensing scheme, permission will have to be granted to allow me to continue to distribute under said licenses if patches are submitted and used.
Also there is no _if_ about open sourcing the module, only _when._ Preliminary estimate is one month. The module works now, I just want more functionality before release. I also want to performance tune a couple of aspects about it.
Re: UI, I'll have something basic. The issue with making a really pretty UI is making something that isn't overwhelming in custom art and can be integrated into existing designs, yet looks nice on its own. The pay-for competition is a good example of what I do NOT want this module to act like - after all, the AppleTV is just a component of a system, not the sole piece.
I am currently on a conference call with autonomics about their media server. A question came up about the icon slots and they indicated that they will be releasing a new version of their module that will use multi state buttons rather than the icon slots because of the problems integrators are facing with the potential for the slots to be in use for other reasons.
I took their response to mean that they now understand the problem and would be releasing both a new media server module and a new appletv module w/ panel pages.
Just an update - module is coming along nicely. Added playlist query support today. Hopefully soon I'll have playlist queue, and artist/album/etc query, view with albumart, queue, quickplay support. Maybe I'll eventually match what the pay-a-boatload-per-processor guys have! (as far as I heard, I exceed what they have re: nav controls with the AMX version)
Release is still ~1 month out Anyone wanting a prerelease or otherwise wanting to see this module become reality is welcome to help me buy a cheap TV or HDMI monitor, so I can test at home...
Edit 20100505: Playlist browse with touchpanel interface and select+play support added.
Life issues have hit hard (transient, etc) and having no TV to test with and no home to test it in, things have slowed down. With my last fixes a couple weeks ago, the module appears to be fairly stable and is currently used in production environments. Although I do want to take care of a lot of the hackjob to get some things working in a better way / at all (playlist browser, artist/album/genre/etc browser) or more reliably (coverart) I may release this shortly since I don't see development continuing at the pace I would like it to. Can you use it? Do you need IP control of an AppleTV? Do you want to do it with a module that isn't tied to a restrictive UI or licensing scheme? Do you want source?
Basically, I need a house and a TV. The house is important, the TV I wouldn't use except for the AppleTV so don't really want to buy one out of pocket just for that But the module I do have, so let me get things together for a release.
Life issues have hit hard (transient, etc) and having no TV to test with and no home to test it in, things have slowed down. With my last fixes a couple weeks ago, the module appears to be fairly stable and is currently used in production environments. Although I do want to take care of a lot of the hackjob to get some things working in a better way / at all (playlist browser, artist/album/genre/etc browser) or more reliably (coverart) I may release this shortly since I don't see development continuing at the pace I would like it to. Can you use it? Do you need IP control of an AppleTV? Do you want to do it with a module that isn't tied to a restrictive UI or licensing scheme? Do you want source?
Basically, I need a house and a TV. The house is important, the TV I wouldn't use except for the AppleTV so don't really want to buy one out of pocket just for that But the module I do have, so let me get things together for a release.
I honestly wonder how a good programmer like yourself is unable to find a job, have you contacted AMX? I'm positive they want to keep a good programmer in this business and would be willing to help you.
Long story short, I have work but the pay is pretty bad. Hopefully I'll have this worked out soon. Work isn't the root cause of my issues - overzealous out of state lawyers making false accusations is.
Wonder how this will change things? Can't count on Apple not to change the protocol to connect/control the thing, can we? I mean, we know how much they love people reverse engineering their stuff.
That still isn't confirmed. Likely though, the Remote app will work with it in some fashion, although the old-style nav controls may no longer work (current Remote app uses a whole different method than what it used to use and is completely different from everything else). If it requires changes to work, I'll figure it out and release a module capable of controlling it.
Wonder how this will change things? Can't count on Apple not to change the protocol to connect/control the thing, can we? I mean, we know how much they love people reverse engineering their stuff.
That was supposedly meant to be announced at WWDC a couple of weeks back. Manufacturers are bound to update devices and changes protocols, if you continously wait for the 'next version' nothing will ever get done.
First, I'd like to thank True for the effort. I have been working through the AppleTV protocol, have asked for advice, and there are some complexities, so needless to say I look forward to the release of this module!
In order to gain remote control of the AppleTV, the AMX controller needs to announce itself on the network as a possible remote client. Then through the AppleTV, you can see and choose the AMX controller and grant it access. That's probably the hardest part and can be accomplished easily without the AMX controller, through a PC program.
Next, the HTTP API lets the AMX controller send commands to the AppleTV and poll for changes. There's a lot the API can do and this has been documented by 'sharky.' Again, the hardest part here is that the response from the AppleTV is binary and needs to be decoded to make it human readable.
So, in the meantime, without the module, I have been getting a controller to send commands to the AppleTV and working on parsing it and making sense. As I too have limited time, I'll post what I can, but if the module is released soon then I can double-up on the effort on that one.
First, I'd like to thank True for the effort. I have been working through the AppleTV protocol, have asked for advice, and there are some complexities, so needless to say I look forward to the release of this module!
In order to gain remote control of the AppleTV, the AMX controller needs to announce itself on the network as a possible remote client. Then through the AppleTV, you can see and choose the AMX controller and grant it access. That's probably the hardest part and can be accomplished easily without the AMX controller, through a PC program.
Next, the HTTP API lets the AMX controller send commands to the AppleTV and poll for changes. There's a lot the API can do and this has been documented by 'sharky.' Again, the hardest part here is that the response from the AppleTV is binary and needs to be decoded to make it human readable.
So, in the meantime, without the module, I have been getting a controller to send commands to the AppleTV and working on parsing it and making sense. As I too have limited time, I'll post what I can, but if the module is released soon then I can double-up on the effort on that one.
Best Regards,
John
Any chance you'd be willing to share the code you have so far? It would be very interesting to take a look. Thanks.
Someone offered me over a month ago to make the UI, and I sent a working copy one month ago. I was told it would take about a week, and it has now been a month and still no UI.
I was hoping to release this >2 weeks ago...let me get a UI done and I'll post what I have. Give me a week or two?
Re: zeroio's points:
1. I actually do the announcing via the module, so no PC is required. The code can be remotely loaded so the only requirement is for someone to use the IR remote or an existing bound iphone/ipod remote to add the new device. You can pair from a PC, it really makes no difference except a PC then has to be present.
2. I have functions that split out all of the responses and make them usable. As simple as a function call or two.
zeroio, if you are not in a hurry, I would say just wait. I can give you a binary one now - just want to make sure source is good enough before giving the open one out.
I'm waiting for a GUI to release it. Hold me to a release date of this weekend - by Sun, August 8th. If I don't release it beat me until I do.
The code will probably be open source and licensed under the LGPL, but I will dual license for dealers who can't use open source software for a small one-time, per-dealer fee, or who otherwise want to support development of a free and open alternative to the $waytooexpensive and very control-limited modules currently out there. (Might encourage me to get more stuff done with the module, too...)
The biggest bug right now seems to be that after some time the AppleTV may ignore the master, and will need to be rebooted. This time varies - I've seen as little as two hours, but usually about two weeks to a month. As far as I can tell this happens even when using the actual remote software on an iPhone. Anyone running Autonomics stuff have this happen? Still looking into what it would take to make this part more stable, but until then, after the module is released, I recommend still hooking up IR for the sole purpose of rebooting the AppleTV when it starts to ignore you.
I have a lot of changes coming (browse artist/album/tracks/etc, more reliable coverart, more readable code, replacing some string-based feedback with channel feedback) but these will be a bit down the line. What works now (full two-way now playing feedback, mostly usable cover art, playlist browsing, search-and-autoqueue) is probably worth having the module for though.
Thanks true, I'm definitely waiting... the binary stuff in the response is compressed so I can't wait to see what magic you've done!
As for the license, I'm familiar with the GPL having the most impact on commercial businesses, and the LGPL having a lesser impact... here's the info straight from GNU for your consideration. If you can use GPL then, in my opinion, that would better protect you, but that's up to your interpretation.
http://www.gnu.org/licenses/why-not-lgpl.html
The GNU Project has two principal licenses to use for libraries. One is the GNU Lesser GPL; the other is the ordinary GNU GPL. The choice of license makes a big difference: using the Lesser GPL permits use of the library in proprietary programs; using the ordinary GPL for a library makes it available only for free programs.
http://www.gnu.org/licenses/why-not-lgpl.html
The GNU Project has two principal licenses to use for libraries. One is the GNU Lesser GPL; the other is the ordinary GNU GPL. The choice of license makes a big difference: using the Lesser GPL permits use of the library in proprietary programs; using the ordinary GPL for a library makes it available only for free programs.
From the article:
Popularity is tempting, and it is easy for a library developer to rationalize the idea that boosting the popularity of that one library is what the community needs above all.
But we should not listen to these temptations, because we can achieve much more if we stand together. We free software developers should support one another. By releasing libraries that are limited to free software only, we can help each other's free software packages outdo the proprietary alternatives. The whole free software movement will have more popularity, because free software as a whole will stack up better against the competition.
Wow.....
Oh yeah - I too am looking forward to see the module in action.
I don't like either the GPL or the LGPL, as they're too restrictive - I prefer BSD, MIT, zlib, WTFPL, public domain, etc. However, with how people and companies in the integration industry really could care less about licenses and will break them at will (some vendors *ahem* do it in their core products), having a license that won't be abided by anyway seems no good. Are people really willing to open up the rest of their codebase just to use a two-way AppleTV? I could do this and go out to sue people for misuse but would that really accomplish anything? Also, Stallman is crazy.
Another thing is that I have read that people in this industry really have concerns of others "making millions on my work." While some companies *ahem* have and continue to do this, for the general vendor, I don't believe this sentiment to be true. This said, with how this industry works, I feel I need to protect myself hence the likely choosing of LGPL.
The LGPL is a compromise to let people still use the module in otherwise closed systems, while still being obligated (read again: obligated, required, mandatory) to make available the source to this module for the customers which they use it for and being able to easily comply. If a company can't comply, they can always license it for use in closed-source systems, thus bringing in funding for me to further the module, or start work on other modules (like an AppleTV XBMC control module). I'm not expecting any money - donated or for licenses - for this, though it'd be nice...
The LGPL is a compromise to let people still use the module in otherwise closed systems, while still being obligated (read again: obligated, required, mandatory) to make available the source to this module for the customers which they use it for and being able to easily comply.
Well said and at least with the dual license there's a way to comply. Now you just need a storefront like www.trueappletvforamxcheap.com, or settle for paypal. Make sure to have that in place by Monday!
PayPal does have "Buy Now" buttons you can put on a website without any type of setup or monthly fee, just a small transaction fee - this is what I will be doing. It takes you to a page that you can customize and when they are finished will be re-directed back to your site. To be honest, it looks like a good deal for the amount of money we'd be dealing with.
Do you know of any other free, no monthly fee, no setup fee ways of accepting money aside from checks?
Software licensing is a wierd one with a small language like NetLinx where the code is generally distributed inside the box's. Things can get a little fuzzy when you try to apply licenses created with the behaviour of another language in mind, especially when it comes to things link linking in the GPL/LGPL.
+1 for the paypal payment. If you've got the payment link on your site you can always label it something like "buy me a beer" as that can make things a little easier when it gets around to tax time.
Looking forward to digging into the final product.
+1 for paypal - I use it all the time, and the best part is the cashback! True, I'd be happy to take you out for beers to celebrate the completion (mostly) of this wonderful accomplishment! (And to find out the licensing cost, of course!) I'm speaking with more and more people that are sick and tired of their ipods charging correctly one month, and then not charging after a firmware update. ATV sounds good....As far as the rebooting goes, a web power switch (Digital-Loggers.com) with a quick BASIC script could just power cycle it once a week or more.
Re: money, my point is that I'm not expecting any. Getting some would be nice, though...lots of bills to pay and I'm hungry
You should definitely try the "if you like my product donations are appreciated" approach (i.e. PayPal gift). If the module is usable and can make my life more easy I'd be happy to throw a few bones your way.
Comments
If you're gonna make it entirely open source I'll help with the layout.
- testing
- family of TP UI - 7" 8" 12" 15" and/or english tech documentation
- custom art
Re: programming, no, not much. I'll accept bug reports and patches but if it goes to this dual licensing scheme, permission will have to be granted to allow me to continue to distribute under said licenses if patches are submitted and used.
Also there is no _if_ about open sourcing the module, only _when._ Preliminary estimate is one month. The module works now, I just want more functionality before release. I also want to performance tune a couple of aspects about it.
Re: UI, I'll have something basic. The issue with making a really pretty UI is making something that isn't overwhelming in custom art and can be integrated into existing designs, yet looks nice on its own. The pay-for competition is a good example of what I do NOT want this module to act like - after all, the AppleTV is just a component of a system, not the sole piece.
I took their response to mean that they now understand the problem and would be releasing both a new media server module and a new appletv module w/ panel pages.
Release is still ~1 month out Anyone wanting a prerelease or otherwise wanting to see this module become reality is welcome to help me buy a cheap TV or HDMI monitor, so I can test at home...
Edit 20100505: Playlist browse with touchpanel interface and select+play support added.
Basically, I need a house and a TV. The house is important, the TV I wouldn't use except for the AppleTV so don't really want to buy one out of pocket just for that But the module I do have, so let me get things together for a release.
I honestly wonder how a good programmer like yourself is unable to find a job, have you contacted AMX? I'm positive they want to keep a good programmer in this business and would be willing to help you.
http://www.engadget.com/2010/05/28/the-next-apple-tv-revealed-cloud-storage-and-iphone-os-on-tap/
Wonder how this will change things? Can't count on Apple not to change the protocol to connect/control the thing, can we? I mean, we know how much they love people reverse engineering their stuff.
That was supposedly meant to be announced at WWDC a couple of weeks back. Manufacturers are bound to update devices and changes protocols, if you continously wait for the 'next version' nothing will ever get done.
First, I'd like to thank True for the effort. I have been working through the AppleTV protocol, have asked for advice, and there are some complexities, so needless to say I look forward to the release of this module!
In order to gain remote control of the AppleTV, the AMX controller needs to announce itself on the network as a possible remote client. Then through the AppleTV, you can see and choose the AMX controller and grant it access. That's probably the hardest part and can be accomplished easily without the AMX controller, through a PC program.
Next, the HTTP API lets the AMX controller send commands to the AppleTV and poll for changes. There's a lot the API can do and this has been documented by 'sharky.' Again, the hardest part here is that the response from the AppleTV is binary and needs to be decoded to make it human readable.
So, in the meantime, without the module, I have been getting a controller to send commands to the AppleTV and working on parsing it and making sense. As I too have limited time, I'll post what I can, but if the module is released soon then I can double-up on the effort on that one.
Best Regards,
John
Any chance you'd be willing to share the code you have so far? It would be very interesting to take a look. Thanks.
I was hoping to release this >2 weeks ago...let me get a UI done and I'll post what I have. Give me a week or two?
Re: zeroio's points:
1. I actually do the announcing via the module, so no PC is required. The code can be remotely loaded so the only requirement is for someone to use the IR remote or an existing bound iphone/ipod remote to add the new device. You can pair from a PC, it really makes no difference except a PC then has to be present.
2. I have functions that split out all of the responses and make them usable. As simple as a function call or two.
zeroio, if you are not in a hurry, I would say just wait. I can give you a binary one now - just want to make sure source is good enough before giving the open one out.
You guys are amazing. Everything I read here is seriously making my mouth water thinking about how cool these controls are going to be!
I'm waiting for a GUI to release it. Hold me to a release date of this weekend - by Sun, August 8th. If I don't release it beat me until I do.
The code will probably be open source and licensed under the LGPL, but I will dual license for dealers who can't use open source software for a small one-time, per-dealer fee, or who otherwise want to support development of a free and open alternative to the $waytooexpensive and very control-limited modules currently out there. (Might encourage me to get more stuff done with the module, too...)
The biggest bug right now seems to be that after some time the AppleTV may ignore the master, and will need to be rebooted. This time varies - I've seen as little as two hours, but usually about two weeks to a month. As far as I can tell this happens even when using the actual remote software on an iPhone. Anyone running Autonomics stuff have this happen? Still looking into what it would take to make this part more stable, but until then, after the module is released, I recommend still hooking up IR for the sole purpose of rebooting the AppleTV when it starts to ignore you.
I have a lot of changes coming (browse artist/album/tracks/etc, more reliable coverart, more readable code, replacing some string-based feedback with channel feedback) but these will be a bit down the line. What works now (full two-way now playing feedback, mostly usable cover art, playlist browsing, search-and-autoqueue) is probably worth having the module for though.
Thanks true, I'm definitely waiting... the binary stuff in the response is compressed so I can't wait to see what magic you've done!
As for the license, I'm familiar with the GPL having the most impact on commercial businesses, and the LGPL having a lesser impact... here's the info straight from GNU for your consideration. If you can use GPL then, in my opinion, that would better protect you, but that's up to your interpretation.
http://www.gnu.org/licenses/why-not-lgpl.html
The GNU Project has two principal licenses to use for libraries. One is the GNU Lesser GPL; the other is the ordinary GNU GPL. The choice of license makes a big difference: using the Lesser GPL permits use of the library in proprietary programs; using the ordinary GPL for a library makes it available only for free programs.
From the article: Wow.....
Oh yeah - I too am looking forward to see the module in action.
Another thing is that I have read that people in this industry really have concerns of others "making millions on my work." While some companies *ahem* have and continue to do this, for the general vendor, I don't believe this sentiment to be true. This said, with how this industry works, I feel I need to protect myself hence the likely choosing of LGPL.
The LGPL is a compromise to let people still use the module in otherwise closed systems, while still being obligated (read again: obligated, required, mandatory) to make available the source to this module for the customers which they use it for and being able to easily comply. If a company can't comply, they can always license it for use in closed-source systems, thus bringing in funding for me to further the module, or start work on other modules (like an AppleTV XBMC control module). I'm not expecting any money - donated or for licenses - for this, though it'd be nice...
Well said and at least with the dual license there's a way to comply. Now you just need a storefront like www.trueappletvforamxcheap.com, or settle for paypal. Make sure to have that in place by Monday!
Do you know of any other free, no monthly fee, no setup fee ways of accepting money aside from checks?
+1 for the paypal payment. If you've got the payment link on your site you can always label it something like "buy me a beer" as that can make things a little easier when it gets around to tax time.
Looking forward to digging into the final product.
Also, RMS isn't crazy, he's just passionate.
Re: money, my point is that I'm not expecting any. Getting some would be nice, though...lots of bills to pay and I'm hungry
You should definitely try the "if you like my product donations are appreciated" approach (i.e. PayPal gift). If the module is usable and can make my life more easy I'd be happy to throw a few bones your way.
My copywriting and web skills are all 7+ years out of shape. (but hey, I barely played with HTML5 if your browser is capable)
Now all I need to do is upload a ZIP with some files and instructions in it, and get more links working...
Site looks good True