Home AMX User Forum NetLinx Studio

Anyone do anything for the Squeezebox yet?

Hi,

I wrote a NetLinx module (available on SourceForge) to drive the Audiotron (from Turtle Beach). It works great, and it allows a NetLinx system to fully control the Audiotron without ever touching it. You can select songs by Genre/Artists/Albums/Title, play playlists, etc, all from your touchpanel, without ever looking physically at the Audiotron.

Since then, Turtle Beach has cancelled the Audiotron (bummer). Furthermore, it's a pretty slow device (I hoped that Turtle Beach would make a faster unit, but that wasn't in the cards). And worst of all: it looks like Turtle Beach isn't even repairing broken units anymore.

I'm thinking of switching to the Squeezebox from Slim Devices (http://www.slimdevices.com). Advantages of this:

1. It's open source. I strongly believe in open source (one reason why most of my modules are up on SourceForge).

2. It has a very strong developer community. Lots of plug ins, lots of richness, tons of flexibility.

3. It's as fast as the server you put it on (no delays when the Audiotron gets busy).

4. It's relatively cheap (just under $200 for a player).

The disadvantage: It *REQUIRES* a computer (not just NAS). But that's something I can live with.

So, anyway, I've been mulling over writing a NetLinx module (open source, of course) to drive the Squeezebox. But before I go off and do that:

1. Has anyone done anything like this already? Starting with something is better than starting from scratch.

2. I'm after MUCH richer control than just I/R. I want to be able to fully control the device from a 2-way panel without ever setting eyes on the Squeezebox itself.

If anyone has any code already, I'd love to see it. If anyone is interested in working on this with me, that would be nice too. [I think, to do what I need, I'd need to extend the SlimServer source code.]

Any other comments or thoughts would be appreciated.

Thanks,

-- Jeff
«1

Comments

  • Jeff,

    Count me in as active helper.

    I have no NetLinx code but I have already worked on the slimserver side of things. It supports a telnet API which can control the player (all functions I think) and over which you can get info on the current playlist. There's a guy who wrote C#####n code to use this API.
    The problem is this API does not allow to browse all of the music on the server.

    To enable that, I had the server implement XML (some form of skin). Through this, all of the functions of the server are available, since the backend is the same than what provides the standard web interface. Instead of doing HTML rendering, it does XML. It supports returning very few elements in lists so that you do not get a 100KB XML list. The XML is pretty basic, so a very simple parser should work. Control is through URL coding.

    My plans were to start working on this real soon now :-) The server has evolved a bit since I worked on this last year so the first task may be to give the XML skin a once over for compleness. Then one needs to support HTTP and basic XML.

    There should be some form of XML introduction document on the server you might want to have a look at.

    Happy to have some help on this one!

    Fred
  • jeffacojeffaco Posts: 121
    I'd love to work on this together. The more help, the less I've got to do! :-)

    I tried to send you E-Mail, by the way, but you specified that you didn't want to receive E-Mail messages. Can you drop me a line; if it gets too "out of scope" for this forum, we can communicate via E-Mail. (I'll make sure my profile is set appropriately.)

    I've looked at the SlimServer somewhat closely. Attached is a message that I sent to the developer's list for the SlimServer, so you can get some background to what I'm thinkin'.

    I looked at the XML interface, and parsing the XML in the NetLinx code seemed more "involved" than I'd like. I loved the CLI interface (fast, nice, simply, one long-lived connection to the SlimServer software - which is kinda nice on the NetLinx side since, each time you bring up a network connection, you get a bunch of notification output that you can't stop if/when you need other notifications). But, as you pointed out, the CLI interface is rather limited.

    There are two approaches that we can go to significantly simplify life on the NetLinx side:

    1) Extend SlimServer to have a new XML skin that actually just returns raw text (no XML encoding). This would work as you pointed out, but I'd be bringing up and shutting down many network connections (as I do with the Audiotron, by the way), or

    2) Extend the CLI (see attached message) to do what I think we'd need. SlimServer is written in PERL; do you know PERL? This has the benefit of superb performance for NetLinx; I bet you could poll multiple players once/second and not even break a sweat via the CLI protocol to update 2-way panels.

    I'm thinkin' that, if we work on this together, one of us could look at extending the CLI (the developer community was fine with rolling these changes into their next release) while the other works at writing a NetLinx module to drive this.

    Thoughts/comments?
  • jeffacojeffaco Posts: 121
    Fred and I are conversing via E-Mail.

    Anything that I write will be available as open source code, free for all to use.

    I'll keep you folks advised, in case others are interested.
  • THANKS!

    Jeff,
    Thanks for keeping us updated. cb
  • jeffacojeffaco Posts: 121
    Progress report

    Fred and I are still working on this.

    I have a rudimentary module that does basic control of the SqueezeBox from NetLinx. I'm working on getting complete status now (so a 2-way panel can tell you everything about a the player even if it's in a closet or something), and then on to browsing next. Fred is slightly ahead of me, so I'm trying to catch up! ;-)

    The module I'm working on, for now, requires that you replace one of the SlimServer source files (and thus, you need to install ActiveState PERL on a Windows system). When Fred is done with the SlimServer module, the SlimServer developers will include that in their next release.

    Anyone interested in the SqueezeBox other than Fred and myself? Anyone interested in getting intermediate releases to help us test?

    -- Jeff
  • jeffacojeffaco Posts: 121
    Another progress report

    I'm not sure if folks here are interested in the SlimServer module that I wrote. But if you are, here's a screenshot for the (supplied) MVP-8400 layout:

    http://sourceforge.net/project/screenshots.php?group_id=62827

    If you'd like to download the executables for the project, you can do so from this page (click "summary"). It's a BETA release, RC2 (release candidate 2).

    I hope to do RC3 this weekend, then release shortly after that.

    Sources will be uploaded to the CVS area when V1.0 is released. I believe that people should have sources for modules; I'm totally uncomfortable using modules for which I have no source code for.

    Let me know if anyone has any questions,

    -- Jeff
  • wcravenelwcravenel Posts: 114
    I have refrained from commenting on Jeff's Audiotron module because I knew I would get all weepy about "Turtle's" demise. It is a totally great solution. For anyone who has one, I have a Snap server I got recently, and the Audiotron is quite a bit faster.

    I will, if work slows down a bit this summer, be happy to obtain, test, and help if I can with Squeezebox, about which I know nothing yet.

    The AudioTron in our house has been elevated to something of a personality, and I have yet to see anything else quite like it, and it makes me doubt the appropriateness of captive MP3 players everytime I see one, especially at 4 and 5 figures.

    BTW, I have TPD4 pages in a couple of different forms for Turtle (he does have a personality, we are quite convinced) if anyone is interested.

    EDIT - investigation completed, will be ordering immediately!

    Bill Ravenel
  • jeffacojeffaco Posts: 121
    Slim does have it's advantages ...

    As someone that had several Audiotrons and absolutely loved them:

    I like the Squeezebox much more than the Audiotron. When controlling the Audiotron via the NetLinx system, the Audiotron was sluggish, and that made the NetLinx appear sluggish when you were trying to do things to it.

    The Squeezebox, on the other hand, has some killer advantages:
    • The "client" (the Squeezebox itself) is relatively dumb. All the smarts are on the server. The server is as fast as you want to make it. Even on a wicked old server that I have (a P2 650Mhz), it's dramatically faster than the Audiotron.
    • The server is open source. This is such a compelling reason, I can't even begin to go into it. Between Fred and I, we came up with a NetLinx solution that, frankly, kicks butt over anything possible with the Audiotron without rather significant Audiotron firmware changes.
    • The fact that you can't use a NAS is a bit of a bummer. But the fact that the SlimServer software is portable (I first ran on Windows, now I run on UNIX) just about erases that for me.
    Was I sorry that the Audiotron is cancelled? Yeah, I was. But I'm using the Squeezebox much more than I ever used the Audiotron at this point.

    Oh, and while it wasn't originally important, I no longer bother with MP3. Since the SlimServer supports tons of different audio formats, I now use FLAC, and open, lossless protocol that gives bit-for-bit equivalent comparisons with WAV files, at something like 50% of the size.

    -- Jeff
  • wcravenelwcravenel Posts: 114
    I also noticed on Slim's web site that they will rip your CDs for you. Audio Station was fun the first few CDs, but it gets old. And SHN's and The Dead got my wife pretty excited. For those of you who like the Dead but are too busy to realize, virtually every show is available in SHN format.

    Jeff, I believe I have your RC3, I will let you know how it proceeds, it sounds like you have some perfectly good help testing. I will be setting up with very simple WinServer2003 with files stored on my NAS (Snap).

    In advance, many thanks to you and everyone who worked on this, the TPD4 is nice, and I saw some of the various leavings on the slimdevices website of what must be Fred's efforts, really very impressive all around.

    Uh, Rex, are you, um, following this?
  • wcravenelwcravenel Posts: 114
    SlimServer up and running

    Jeff, up and running !

    Code changes maybe totalled one hour, and I was puttering to say the least. Changed devices, selected AS8 input/settings, changed MAC and IP. That hour includes downloading and installing SlimServer onto simple PC running Server2003. Running SlimServer 6.02 w/ your RC4.

    Not including physical connection, the device itself took maybe 30 seconds, and that included firmware download to the SlimServer.

    I am using an NAS device through the PC, over the network. So while AudioTron was going directly to the SnapServer (which was much faster than regular PC), SlimServer going to Snap through the PC is much faster still.

    My wife saw it for about 10 seconds and asked if we were retiring "Turtle." Long live AudioTron.

    Many thanks again to any and all who worked on this.
  • frthomasfrthomas Posts: 176
    I'm happy you like it.

    Enjoy!

    Fred
  • jeffacojeffaco Posts: 121
    SlimServerMod v1.0 released!

    For those interested, I just uploaded the final (v1.0) release to SourceForge. The differences over RC4 are trivial. If you already have RC4 running, don't worry about it. The only changes: the "sleep" button on the VPN-CP panel sends a channel (no effect on sample code, but useful if you import the panel into an existing system), and the README file has been updated.


    Bill,

    I, too, am glad that you like SlimServerMod. I put a bunch of time into it, and Fred's help was absolutely critical. Without his help, I'm not sure I would have taken the time to even write SlimServerMod.

    If you ever try SlimServerMod on a MVP-8400 (or any panel capable of displaying images), the results are really sweet. Complete with album art, it just looks really nice!

    Enjoy,

    -- Jeff
  • vincenvincen Posts: 526
    In fact response of whole system (AMX and SlimServer) is really great :) It works efficiently, quickly, really great job Jeff ;)

    Impatient to start to play with V2 previews :D

    Vinc
  • wcravenelwcravenel Posts: 114
    Jeff,

    At first I thought the dynamic picture was just wishful thinking and just now went back to take a look at it.

    I have looked for the correct variable for path. I have a number (path is music/1256 as one example. I tried %TRACKNUM and %ALBUM. Did not work. I know I am just missing something here. I can hard code the number and live file picks it up.

    Regards,

    Bill Ravenel
  • vincenvincen Posts: 526
    Bill,

    Just have a look at TPD4 example file in the zip of the module, it's just /fake for path but be sure your dynamic resource is name Cover_Art ! If it's not labelled Cover_Art, module will be unable to update cover art picture on panel !
    IP adress indicated for Dynamic Ressource must be IP:9000 where IP is IP adress of SlimServer and HTTP type.

    Hope it helps ;)

    Vinc
  • AvophileAvophile Posts: 70
    Kudos and Thanks to Jeff and Fred

    Thank you for all your efforts. I'm going to try this as soon as I get my hands on a Squeezebox.... Jerry Garcia would be all for the open source community.
  • wcravenelwcravenel Posts: 114
    Vincen (& Jeff),

    Thanks, I got it !! I made change to TP before I obtained some cover art, then never put back the pic. All I was doing was trying to get it with GetLiveFile from TPD4. I knew it would be complicated.

    Avophile - this device plays SHN files, and there is a plug-in available for the device to allow browsing of Live Music Archive.

    Regards,

    Bill Ravenel

    P.S. - Jeff, I don't think that "really sweet" and "really nice" fully convey the impact of using cover art. More like "spectacular" and "out of the park" ! FYI: http://www.slothradio.com/covers/
  • vincenvincen Posts: 526
    wcravenel wrote:
    P.S. - Jeff, I don't think that "really sweet" and "really nice" fully convey the impact of using cover art. More like "spectacular" and "out of the park" ! FYI: http://www.slothradio.com/covers/

    You can find also an amazon plugin for SlimServer that works pretty well, it's a perl script that goes through all your files and fetches all cover art it can find, it's not perfect but it's pretty efficien and fast. You can find it here: http://www.victorland.com/slimp3/

    Enjoy :)

    Vince
  • help setting up SlimServerMod

    I wasnt sure were else to ask this, but I'm trying to set up an MVP-7500 with an Ni-2000 to control a SoftSqueeze player. I can't seem to get the master to communicate with my computer at all. I've read that the module should work pretty much out of the box, and I changed the server addr parameter to reference the IP address of my slimserver. I also commented out the extra 2 mac addresses and their references, and changed the MAC so that it matches the mac of my player.

    The only thing that seems odd to me in your code is that you dont have an IP_Client_Open command anywhere. I'm pretty new to IP programming in Netlinx, but isn't that a necessary thing to initiate communications? Thanks in advance for any help you can provide.

    -Andy
  • Andy,

    Once any errors are shaken out, this is extremely reliable. But I have not used Softsqueeze, only Squeezeboxes.

    Some things to try - first, I sometimes need a 2nd re-install of SLim software. Then double check your settings on the SB itself, after you see server up and running. Also, check folder to which you're pointing for music/playlists.

    Module was modified and updated last year: http://sourceforge.net/project/showfiles.php?group_id=62827

    Also, Jeff, et al. - running Vista build 5536 (Pre-RC1) with Slim 6.3.1 successfully, regular old squeezebox updated to new firmware, all good.
  • thanks for the quick reply, unfortunately the server and audio client are working perfectly, and Im failing to get any IP communications from the netlinx master back to my computer. I just verified this by running ethereal(packet capture utility) while rebooting the master, and then attempting to use the touchpanel to initiate some form of communication with the slimserver.

    I also just verified that my slimserver is accepting IP connections on port 9090, and was able to send power off and power on commands to the softsqueeze player, using the format outlined in the slimserver CLI.

    Im using the sample program and sample tp file provided off of the sourceforge project page.
  • ok, so I missed the part where I was supposed to uncomment
    #define USING_MODERO_PANEL. seems to be working now, but there does seem to be quite a bit of delay, and not all commands seem to work reliably. is there something else I might be missing?
  • figured out my lag problem too, once I forced my ni-2000 into 10mb ethernet mode, everything started running much more smoothly. must be an issue with my cheap switch.
  • Andy,

    Good to hear.

    For anyone following this, I think SlimDevices is going to be at CEDIA...

    Bill Ravenel
  • camelcamel Posts: 2
    will this work without the need for a pc

    http://en.wikipedia.org/wiki/QNAP_TS-101

    I intend to install a squeezebox 3 connected to the above..
  • vincenvincen Posts: 526
    camel wrote:
    http://en.wikipedia.org/wiki/QNAP_TS-101
    I intend to install a squeezebox 3 connected to the above..

    As far as your box supports current version of SlimServer, you'll be able to connect to it your squeezebox and you'll be able to control it with AMX ;)

    Vinc
  • camelcamel Posts: 2
    many thanks.. it seems to have slimserver 6.2. i will need to dig in to find out if that could be upgraded to 6.5 which is the current one.. this NAS plus as many slimservers as you like seems like a viable alternative to imerge.
  • vincenvincen Posts: 526
    camel wrote:
    many thanks.. it seems to have slimserver 6.2. i will need to dig in to find out if that could be upgraded to 6.5 which is the current one.. this NAS plus as many slimservers as you like seems like a viable alternative to imerge.

    A lot less expensive than Imerge, a lot more reliable, a lot more scalable and customisable if you need :D
  • kennyannkennyann Posts: 113
    Help with this squeezebox

    I am new to this logitech unit. I have downloaded the Netlinx module but have problem communicating with the squeezeboxes. As I was reading through the thread I am assuming that I have to download the squeezecenter software? Is there any settings I need to be aware of to configure the system? Thank you for your help.
  • frthomasfrthomas Posts: 176
    If your SqueezeBox work, you have downloaded and installed the SqueezeCenter software already. The boxes do nothing without it.

    There should be no particular setting, save for opening the port (9090 by default) on the Windows Firewall. The CLI plugin should be also enabled in SqueezeCenter settings, but this is OK by default.

    HTH
Sign In or Register to comment.