I've got a large collection of CD's converted into mp3 format so that my wife can download them onto her iPod. Back when my brother in law, Curtis, was renting the bottom floor of our house, he had a computer set up in our entertainment room that could play the mp3's, and it was pretty cool. He has moved out though, and we didn't have a way to play mp3's on the stereo anymore.
Since my wife really missed having the music archive in that room, I started looking for a way to replace Curt's media PC. He had rolled his own solution in Linux, and I was thinking about maybe just trying to duplicate his setup with a new PC, until I came across this thing:
The Roku SoundBridge m1000 from Roku Labs.
At first, it didn't look like the m1000 was going to work for me. My music is stored on a Debian Linux fileserver running NFS and Samba. The Roku doesn't support direct mounting of file systems, which seemed kind of silly to me. I thought maybe there would be some kind of open source UPnP AV server for Linux out there, but I couldn't find one. There is a for-sale one from Twonkyvision, and thats almost a cool enough company name to try it out, but I really didn't like the idea of adding non-open software to my fully open source system, mostly because it makes keeping the system up to date more difficult. Luckily, I didn't have to go that route.
The Roku also supports an iTunes server as the back end. It turns out that the iTunes protocol is really called "DAAP", for "Digital Audio Access Protocol", and there is a very good open source DAAP server called:
I pulled down a copy of the most recent MT-DAAPD sources from the repository on Source Forge, and they compiled flawlessly. I was even able to build a Debian package from the supplied Debian build rules! The only catch was an install problem. When the package installs itself, it makes a directory called /var/cache/mt-daapd where it tries to store its song index. The directory was installed by root with permissions set so that the mt-dappd, running as uid nobody, couldn't write to the cache. A quick chmodding of the directory fixed it.
MT-DAAPD is a very slick program, and very easy to use. I won't list all of its features here, but it supports play lists, server side keyword searching, has a web based management GUI, and works flawlessly with both the Roku and the copy of iTunes installed on my wife's PC. My music distribution problems are solved. Thank you Ron Pedde!
In short, the Roku SoundBridge works with Linux! The interface is easy to use, and with mt-daapd on the server, it integrates nicely with my Linux system. The 802.11b wireless setup was easy, all I had to do was pick the correct essid for my house, and enter the WEP key using the arrows on the remote control. The Roku took a DHCP assigned address, and was able to find the music library advertised by mt-daapd without any further coaxing.
I'm a little worried about it not supporting WPA2 right now, as that is where I was planning on taking my wireless network in the near future, but the Roku software update procedure worked flawlessly when I tried it, and there seems to be active development by the good people at Roku. Maybe they'll work on it?
The audio quality is fine coming out of the analog outputs. I'll update this section when I move the Roku onto the good audio gear and connect it using the digital outputs.
There is this section in the Roku manual titled, "Hey Geeks, Read This!". It talks about there being an unsupported CLI interface onto the Roku that can be used for 'piddling about'. Well, what can I say. I find that pretty damned endearing in a product. It is almost enough to forgive the SoundBridge not being able to mount my file systems directly! So yeah... I took the bait, and gave it a look.
There is a subsection of commands at the SoundBridge CLI for drawing directly to the screen. Since I already have a music server online all the time, I thought it might be fun to have it contact the SoundBridge every quarter hour to announce the time and print something witty.
It took about two hours to hack something together. Being a Quality Assurance Engineer by profession, I wrote the code in Tcl. To run it, you'll need to have Tcl and the Expect packages installed. As written, it also requires the common Unix /usr/games/fortune program to "print a random, hopefully interesting, adage". For what it is worth, I think that the script would run under Windows if the call to fortune was replaced with something else, but I've not tried it.
The code takes exactly one argument, the host name or IP address of the Roku SoundBridge. To get it to run periodically, I put it in my crontab like this:
0,15,30,45 * * * * $HOME/play/roku/rokusbchime.tcl roku.localnet.net
Here is a copy of the code for anyone who wants to play with it:
Local weather as of 15:57:10 Wind speed 2.7mph NW Temprature 66.4 F, %46 humidity Pressure 30.109 and Rising
...which clearly makes the Roku m1000 the best in-house MP3 player ever.
I've been helping run The Last Outpost since '91. If you need a break from learning about stereo equipment and want to play a fun, free, online multiplayer game, click the banner link below to go to the games home page.