Using Slimserver with iPod Touch or iPhone

I blogged a few days about about how I was moving back to Slimserver (aka SqueezeCenter). Today I started wondering how to listen to the stream on my iPod Touch. A quick search came up with an app called CastCatcher from Return7. It took me a while to figure it out, but if your Slimserver is passworded, you need to prepend the login to the front of the URL for the stream, like http://username:[email protected]:9000/stream.mp3, otherwise, just use http://XXX.XXX.XXX.XXX:9000/stream.mp3. (Obviously, XXX.XXX.XXX.XXX can either be the IP address of the server or a domain name if you are using one. Basically, the standard Slimserver URL; nothing special.)

Once you get the player to connect, you’ll need to limit the bitrate lower than the default 320k. Apparently, Slimserver streams too fast for CastCatcher to handle. If you’ve never done this, the setting can be hard to find. First, go into SqueezeCenter settings and select the Player tab. There are two a pop-up menus just below the tabs. The left one chooses which player you are changing, since there could be more than one. My CastCatcher shows up as “Mozilla from 192.168.1.50”, but yours will likely be different. After the player is selected, choose Audio from the pop-up menu on the right. Change the Bitrate limiting to 64k, 96k or 128k.

That’s it! CastCatcher is only $1.99 in the iTunes store. Seems to crash every so often, but generally I’m happy with it.

Going back to Slimserver aka SqueezeCenter…dumping Orb

I was a long-time user of the open-source app Slimserver for streaming music over the Internet, but updates were slow and the interface was getting a little dated and clunky. After Logitech acquired it, I didn’t hold out much hope for positive change. I switched to Orb a few years ago. However, for whatever reason Orb is just a memory hog and randomly gets out of control. The problem never seems to get addressed and fixed. I’ve had it hit 1GB of RAM use! I looked around and ended up back with a much improved Slimserver which has been renamed SqueezeCenter. Logitech uses it to feed their line of SqueezeBox music devices. However, the streaming software can still be used stand-alone without the Logitech hardware.

The UI is certainly not as nice and refined as Orb, but memory use is much more reasonable, holding firm at about 160k. I had to re-remember all of it’s quirks though and it took me a bit to figure it out again. Hopefully, the information in this post will help you out if you want to try SqueezeCenter, which is still open-source and free!

First off, you need to forward ports 9000 and 3483 to the PC running the server software. Download and install the SqueezeBox software. The software is written in Perl, and will run on Linux, Microsoft Windows, Apple Macintosh, BSD platforms. The UI is web-based so after it is running, browse to http://localhost:9000. The SqueezeCenter will appear.

SqueezeBox uses a server-client set up and although the initial SqueezeCenter interface appears to have a player (ie, client) on the right, it doesn’t work like you might think. SqueezeCenter is where you point to your music files and set up other configuration settings. You’ll also use the SqueezeCenter to choose what is streamed. You need a separate player (ie, client), which we’ll get to later, to play what is streamed.

Click on the Settings button in the lower-right of SqueezeCenter. You really only need to change a few settings. On the Basic Settings tab, set your Music and Playlists folders–yes, only one for each, but music can be in subfolders beneath. The only other setting I recommend is on the Advanced tab. Select Security from the pop-up menu there. Turn on password protection and set a username and password. This will help prevent unauthorized people from using the server. Once you do all this, SqueezeCenter will start scanning your music and build its library. Click Apply after changing settings on any tab. When done, close the window.

Now the client side. You can use most any mediaplayer that can load a URL using http://localhost.org:9000/stream.mp3, but the SoftSqueeze client software, also free, is nice and works more in concert with SqueezeCenter. If you Do NOT use SoftSqueeze, you can’t use the transport/volume controls on the SqueezeCenter web UI. Also, if you DO use SoftSqueeze, you can keep the player minimized and just control stuff using the web UI. Get the jre version if you need to install the Java runtime files.

(Note that if you want to access the server from outside your local network, you either need to know your external IP address (or point a domain to your home, like with dyndns.org). Use that instead of localhost.)

The default SoftSqueeze player skin is very confusing. Don’t bother clicking any buttons until you have everything all set up. To bring up the preference settings, click the tiny button above the top-left corner of the player. It’s the second from the left and looks like three exclamation points on their sides.

The only setting you must set is on the Basic tab. There you must enter the host name. Just enter your external IP address (e.g., 192.168.1.10) or domain name (myname.dyndns.org). Don’t add http:// or anything after, including the port number. Click OK and close the window.

If you want to go back into the SoftSqueeze preferences to try different skins, go ahead. I’ll warn you though that it is often difficult to find the preferences button, but it’s there if you look hard enough. Also, if your are using one of the skins with a remote, you can move it independently by holding Ctrl while dragging. How intuitive, huh? I like the Excession skin with thin display style.

Now go back to the SqueezeCenter settings and click the Player tab. You should see the SoftSqueeze player settings. (If not, you may need to click the Forget Player link near the bottom of that tab.) Click Apply and Close. Now find some music to play in SqueezeCenter. Click the right-facing arrowhead to send the music to the playlist. Make sure SoftSqueeze is selected in the pop-up on the upper-right side of SqueezeCenter, above the playlist. You can use the transport controls to change what is being streamed. You can also use SoftSqueeze to do the same type of things. Hopefully, everything is working for you. If not, try closing SoftSqueeze and running it again. Be patient.

Once you get it working, it’s pretty solid. The confusing part is that the music selection is totally separated from the music playing app. Playing music is a two-step process. First, run SoftSqueeze to connect it to the server. Second, open SqueezeCenter and start streaming the music. I like to keep SoftSqueeze minimized to the SystemTray and control the music from SqueezeCenter. It just seems more natural.

I tried to touch on the confusing parts and the above information should help you get the Squeezebox software going. It is still a relatively advanced installation process even with this info. Good luck!

UPDATE:
Another confusing thing is that you can stream different things to different clients simultaneously. It is all determined by what player is selected in the top-right of the SqueezeCenter(SC). If you’ve made multiple connections to SC, it can get confusing. Even browsing to  the stream.mp3 can set up a “player” entry.

UPDATE  2010-02-17:
Giving Orb another try. They’ve seem to have fixed the CPU hogging bug!