25 Mar 2009, 18:22
It took a little time, and research, but I'm finally free of the iTunes control over my music I had gotten into.
It started with me getting an iPhone... yes, I was an early adopter, got it the 2nd day the iPhone hit the market. I then proceeded to load my music library onto my phone, unfortunately it couldn't hold everything. So I discovered smart playlists, and a trick to have iTunes, when it synchronizes with my phone, actually remove played songs from the phone and add new ones into it.
Then... I got increasingly complex with my playlists... doing a heavy restructuring of the music in such a way to provide the kind of mix I wanted for my music. iTunes' smart playlists are impressive in what they can do. However, there were a few problems:
1. The iPhone is notoriously buggy. Especially when I was having all of my smart playlists on the iPhone (and they work off of each other, playlists built from playlists and such). It got to the point that my phone would regularly crash after playing maybe 1 or 2 songs. This was unacceptable, and resulted in me no longer managing the playlists on my phone directly, but rather having iTunes simply load it with songs in a single playlist, and letting iTunes do everything else.
2. iTunes gets very sluggish when you have a lot of inter-connected playlists. By a lot, I mean somewhere around 200 smart playlists tied together. iTunes isn't happy with that. The software seriously needs some optimizations with these things.
3. The iPhone occasionally would not sync music correctly. Occasionally, I'd end up with just a part of a song file, rather than the whole thing. A bit jarring when you are listening to a sing, and then halfway through it changes to something else abruptly (or the real fun iPhone crashing because the file is corrupt). This would mean I have to completely remove ALL of the songs from the iPhone and resync. Such fun!
4. iTunes doesn't work in Linux. This is a stickler for me, as I'm a long-time, tried & true user of Linux as my main OS of choice. I got sck of having Windows on my laptop, JUST for iTunes. So, I made a VirtualBox VM with Windows XP on it, and iTunes inside it.
5. The iPhone doesn't like VirtualBox. Yes, I got it to sync my music and stuff to and from iTunes inside VirtualBox. But if I ever had a firmware update, it would never work right, I'd have to update my firmware from my work computer (which does run Windows), which is a pain, and then this occasionally had a similar effect as #3 above -- I'd end up losing all my music (because iTunes on my work computer "decides" that it now is in charge of the music on my iPhone, and would wipe the music when I updated my iPhone's firmware).
6. VirtualBox occasionally does BAD THINGS. Like, for instance... corrupting the virtual disk partition in such a way it becomes unrecoverable. Good-bye iTunes running in VirtualBox system...
This left me without a way to sync my music to my iPhone, very frustrated with my iPhone (which also has been steadily going from 5 bars Cell network connection to < 1 bar Cell network connection any more and completely unusable at my new home).
So... I begin to look at other things. First, I tried the Firefly Media Server from Roku (formerly mt-daapd). Cool stuff, works a lot like iTunes, sends daap shares for daap-aware systems to pick up on. Very limited in its smart playlist functionality, so I built a Python script that duplicated, more or less, my efforts in iTunes. I was able to get my iTunes library up and running, somewhat, through Firefly.
Then I found Logitech's SqueezeCenter. With a few plug-ins (notably the customscan, dynamic playlist, trackstat, and sql playlist plugins), and a little effort moving my Firefly database over to SqueezeCenter (mainly, I needed the old iTunes groupings I had, as well as my meticulously worked on ratings, dates added & last played, and play counts from my Firefly/iTunes library), I then proceeded to build a set of stored procedures, functions, views, and tables inside my SqueezeCenter database (I made it point to my own MySQL database server instance rather than its own). From those, I was able to completely duplicate what iTunes offered for smart playlists, through extensive SQL coding. Even better, I was able to make it work without needing further intervention on my part.
SqueezeCenter also lets me stream the audio like an internet radio station, so my work computer can play it in WinAmp, my desktop & laptop comptuers at home use my favorite Banshee player, and my (now Jailbroken) iPhone uses vlc4iphone. All of them play off the same music library, and it works *very* well.
And, the integration/scrobbling for Last.fm also is automated by the SqueezeCenter system, so regardless of what system I'm using, I have scrobbling going on :)
So, t'hell with Apple's attempts to tell me how I want to listen to my music, I'm free and clear, and really enjoying the liberty I have with my music now :)