« Moving a Web Host to New Location | Main | Live Writer »
Streaming Music (PC to Hi-fi)
April 08, 2008
I have always wanted to own a Squeezbox so that I can stream my iTune collection to my Conrad Johnson tube amp for some quality playback while working/playing in front of my computer. As I have got used to using iTune, there is less and less incentive to switch on my hi-fi because I hate the idea to get up every so often to switch CDs. And of course, my Conrad Johnson cannot play or scrobble to last.fm – an excellent community for music fans and a top class personalized radio station.
You may call the setup laid out below as ‘The Poor Man’s Squeezbox’ as it would be ideal for people who cannot afford a Squeezebox but still want to stream their music from a computer to their hi-fi or home-theatre sound system and to control the stream from any computers that have been hooked up to the home network (or internet if you want to make it accessible to the public at large).
First, my existing setup:
I have one desktop PC (let’s call it Bobby) and 3 laptops (let’s call them J, K & E) for my 3 girls. They are all connected to a wireless home network thro’ a Philips wireless router. We can play each other’s music collection simply by sharing the iTune library but control of song selections and playback remain with iTune itself, ie, if I hook up J to my hi-fi, I still have to get up and use the iTune (or whatever media player fancied) in J to select my song list, stop, pause or change its volume. It takes care of sharing but doesn’t get me any further in gaining control over what and how I would play my music. (just a side note here, Remote Desktop is possibly the simplest option but it tends to be an overkill because it takes over J completely and no one can use J once Remote Desktop takes over.)
Now, the ‘almost perfect’ setup using SqueezeCenter:
Requirements:
1. a server (I use Apache which imho is far superior and easier to configure than IIS that comes with my XP Pro)
2. perl
3. MySQL
4. SqueezeCenter
5. A media player (I use iTune. Winamp, Windows Media or the default player incorporated in SqueezeCenter will all work equally well.)
The main task is to get a server, perl and MySQL installed. If you are using Linux or like me who already have Apache, Perl and MySQL setup, you are nearly 80% done. The setup of Apache, Perl and MySQL are very well documented elsewhere and there are many excellent tutorials to help you get them up and running in a Windows box with minimum fuss.
(SqueezeCenter will have its own instance of MySQL installed. This is one big improvement as SQLite or any file base database will have a hard time storing a large music collection. For example, I have about 40,000+ songs and if I run amarok (the top favourite player in Linux) with SQLite, it will crash when importing my music library. It, however, works perfectly smooth when I use it with MySQL.)
Test to make sure that you can connect to localhost and run some perl scripts before installing SqueezeCenter.
SqueezeCenter is a daemon (or a media server if you like). It allows other computer to connect to it thro’ a web interface. I install it in my desktop, Bobby for the reason that my main music collection is stored in several local harddisks there and it will make importing my iTune library a little faster. In practice, it does not really matter whether I install SqueezeCenter in Bobby, J, K or E. All I need is one SqueezeCenter installed in any one of the computers in the network.
My local LAN address of Bobby is 192.168.1.88, J is 192.168.1.89, K is 192.168.1.90 and E is 192.168.1.99. After SqueezeCenter is installed, open up your favourite browser and enter the address http://192.168.1.88:9000 if I am at Bobby or enter http://192.168.1.99:9000 if I am at E (you get the idea).
SqueezeCenter web interface will warn you that it cannot detect any player, you have 3 options (to be exact):
1. Buy a Squeezebox
2. Use the default player (Read the entire warning message on the right pane if you are using the latest version of SqueezeCenter ver 7) and click on ‘SoftSqueeze’ – it will automatically install itself for you and is actually quite fun to play with as it emulates the actual Squeezebox using java. (Try this first as it saves you the trouble to open up a stream using your favourite media player. Once this is working, you can always switch to iTune or whatever.)
3. Use iTune (or any other media players) to open up a stream http://192.168.1.88:9000/stream.mp3 at Bobby or similarly http://192.168.1.90:9000/stream.mp3 at K.
After Squeezebox is installed and the music library imported under ‘Settings’ -> ‘itune’ in SqueezeCenter (bottom right corner), use the ‘select’ button at the top right hand corner of SqueezeCenter to select a player. Assuming I have launched a player in Bobby, J, K and E, I should see 4 players appearing in the dropdown menu. I will have to select the one I will be using (This can be done in any one of the computers.)
Say, if I hook up K to my hi-fi, I’d select ‘itune at 192.168.1.90’ from the dropdown menu, create a playlist or simply play any songs shown on the left pane. If one of my daughters wants to play some music thro’ her laptop speaker using J in another room, she would select ‘itune at 192.168.1.89’ from the dropdown menu.
You can expand what SqueezeCenter can do using plugins. Ver 7 is already budded with last.fm scrobbler and will scrobble to last.fm with minimum effort. Go to ‘Settings’ -> ‘Plugins’ and enter your last.fm details there. It also allows using multiple identities. I installed only one plugin - Lyrics is a handy tool to grab and display the lyrics of the current playing song in the left pane.
Finally, always take a look at ‘Settings’ -> ‘Players’. Here you will choose which last.fm identity you will use for a particular player and more importantly, the quality of audio stream. I use ‘highest’ in my wireless LAN environment and have found no skipping. If connection is made over the Internet, this may have to be lowered or maintained at the default level (which is at 9, lowest).
There is a lot more you can play with Squeezebox. If I want to play my home music collection while I am at work (assuming no one is at home to launch my SqueezeCenter for me), I will need SSH server and client. But if I just want to share my collection to the world while I’m playing at home, I can do so by simply replacing my LAN address with my WAN address (or using dynamic dns) and opening up the relevant port in my router.
Try this http://lastfm.mamafanfan.com:9000. If I’m online, you should be able to see and play my music collection. First, remember not to mess with other players in the drop down menu. Choose your own player to configure (your player will assoicate with an IP address of yours) . Secondly, as I have limited bandwidth, if it gets too busy or I suspect abuses of the system, I will have to close down the server. Good luck and enjoy!
Posted to Web at April 8, 2008 06:04 PM : 
Furl It!
del.icio.us
Comments
Post a comment
Thanks for signing in, . Now you can comment. (sign out)
(If you haven't left a comment here before, you may need to be approved by the site owner before your comment will appear. Until then, it won't appear on the entry. Thanks for waiting.)