I listen to a lot of streaming music — especially when I’m on a project where I’m writing code. I go into the office, put on my headphones, plunge into the code, and at the end of the day, I take off the headphones, look at my progress, and I’m usually surprised at how much I got done. I guess it helps drown out distracting background noise, so it helps me concentrate.
Anyway, one thing I’ve noticed is that the “catalog” of songs on a lot of the streams is pretty small. I end up hearing the same stuff just about every day. As a result, I spend time looking for new stations every day to avoid this. Then I thought, “maybe it’s time for me to set up a streaming server at the house so I can just stream my own library of music to the office”.
The first decision I made was that I didn’t want to spend any time doing this. I wanted something that worked the first time, without compiling dependencies, without wondering if I’m running the latest version of library “x” or whatever. Then I remembered that I also have a lot of music that I purchased through iTunes that I wanted to play, and those are in m4p format (which is a DRM-encrusted, security-smothered version of m4a). I wouldn’t be able to serve them up, as-is, from a Linux box without first going through what looked like a pretty painful process of scraping off all the gook and making the m4p files usable. I’ll do this some day — it is not that day.
Instead, I found Nicecast. I downloaded it, installed it on my Mac, launched it, configured it, and had a working stream in under 3 minutes. I really mean it. It’s so Mind-Numbingly Easy(tm) I can’t believe it. Turns out it’s a great way to get familiar with what I actually *want* out of a music stream, too.
For one thing, I want to be able to treat the streaming server like a radio and listen to any one of various “channels”. If I’m having trouble with my code, I want to hear metal. If it’s early morning or tea time, I might want to hear jazz. I don’t know of a way to pull that off without using Nicecast and the OS X security model in ways for which they were not intended.
I’d also ultimately like a remote control for my library — like a web front end to iTunes that’ll let me stream my iTunes music as if I’m sitting at my Mac. Pause, skip, play a different list… all the major features would be awesome. I don’t need everything. Just the basic browse and play functionality. Apple could probably pull this off. I wonder if someone else can do it in a more open way, though.