Today has been a beautiful one, enough to persuade even me to visit the Big Blue Room. Some extensive rearrangement of the local greenery happened after Max lost one of his toys in a tree, and many scratches later I was able to relax in the knowledge of a section somewhat spruced up. That tree that blew down a couple of years ago has been appropriately dealt to, a drain has been uncovered, much moss, ivy and branches removed as well. The weather forecast for tomorrow is for similarly coloured skies, so the industry may even continue for another day!
In other blueness and greenness, when Fraser finally got dressed this morning he loudly proclaimed that he was "all in blue" so I said "Let's have some music to match, then" and we spent the first half of the day playing only tracks with names ending in "Blues", which sourced such a delightfully eclectic set of artists so that this afternoon we moved on and I found that music with the word "Green" in it's name might provided us with even more exotic entertainment to round out a great day of blues and greens. Tomorrow, Max says he wants to hear some Reds and Yellows, so I guess we will carry on there! I might cheat a little and leave the 'w' off yellow :-)
I've been trying for a long time to find something that will match my music needs, but I think I give up, so I have finally decided to release my "Adorno" music server out into the big blue room.
Some people suggested Amarok, but while it does have some web interface plugins they really are Teh Suck(tm) for all-the-time use. Using Amarok over an SSH connection seems to soak network bandwidth to the max, as well, and is quite sluggish. Amarok is nice, but I don't play my music on the computer in front of me.
I looked at SlimServer, but it requires me to run some Java doohickey on the music player which (surprise, surprise) expects the server to have a GUI.
I looked at MPD as well. This is probably the closest thing to something I could use, and if I hadn't already written my own music server years ago I would probably go with this. As it is I have something which kind of works, and which has records of the last 20,000 odd tracks I have played. It only really has a few bugs, which are minor enough to have not been fixed for a couple of years, so I should just get stuck in and do the work.
What crystallised this chain of thoughts for me was yesterday, when everyone got a wee bit excited about the Catalyst IT group on last.fm I decided to finally sign up for an account on there. Of course if I had an account, I had to have some way of actually putting my playlist on there...
... 10 minutes later I had managed to find the Audio::Scrobbler library, and an hour later I had hacked the support for it into Adorno. Looking through the code of the music daemon component of Adorno I realise it ain't that bad. There are a few improvements it could do with, but the basic approach works just fine.
So I'm now listening to Charles Mingus, and it's all being scrobbled up to (by?) last.fm, although I guess strictly this isn't all going to be my choice of music. Under pressure from one of the shorter members of the household I have been known to play "The Wiggles", "Buzz O Bumble" and other stuff I am heartily sick of, but which he continues to adore.
So now I had firmly committed to releasing my code, I had to get rid of the revision control on there (I was using Darcs, since that's the project I was starting when I wanted to try Darcs out) and replace it with Git. I don't think there is any value in retaining all my old history so I just moved the _darcs directory out of the way and "cg-init" in the root of the project.
Then back on my laptop, I just clone from the remote project root and start editing away. Eventually I decide to "cg-push" and my changes go back into the project root on the music server. Except, of course they don't: they go back into the .git directory in there and when I ssh in and run cg-status in the project root it wants to undo all my good works! I think that's a bad Andrew for even thinking of doing something so stupid! So I'm now using "cg-reset" to put my code into operation on my music server. Ouch!
Oh well, I guess that means that Debian packaging must be early on the list :-)
I like my music, although I find that I can't stand sticking headphones over (or in) my ears in the normal course of events. When I buy a CD I carefully rip the music off it so I can then put the CD in a cupboard. This has saved quite a number of them from the never-to-be-underestimated destructive power of an absent-minded child.
Over the years I have had a kind of low-key desire to find some decent software to allow me to find, categorise, playlist and free-associate all this music. It's been a "low-key" desire because I wrote my own software to do this some time ago, but it's kind of crude (browse artists / albums, find artists / albums containing tracks matching a regex, enqueue / pause / stop). This is mostly OK for me because I wrote the software and know how to work it, and it provides some ability to stumble over tracks that had been forgotten, but I think the UI really must suck quite a lot since Heather generally prefers to use the CD player directly.
What makes my requirements so hard to meet is that the PC I play my music from is in a cupboard and it doesn't have a keyboard, mouse or screen. I guess most people wanting to set up a "multimedia PC" actually want more than one media on it. We don't have a television in our house, so the cupboard is just fine. Everything is on the LAN, so we can use the keyboard / mouse / screen of our local PCs.
That's all well and good, but playing music is kind of fickle. I don't want us fighting over what stream is playing at the moment, or (possibly even worse) just mixing them all together. Also, the music is on the computer, and the soundcard is on that computer - so there shouldn't be a need for the files to be transferred across the network twice to play them. Sometimes I like the music to still be playing when I'm rebooting my laptop too.
So on Friday night, Brenda pointed me at Amarok, suggesting that it does evrything that anyone could possibly want in their music player, pointing out that it even had these plugin scripts that it could run, which would allow for a web interface and everything...
On Saturday I installed it, and I must say that it is the most sophisticated music player I have come across, and it really did help me find and categorise my music through a very well thought out interface. Unfortunately that well thought out interface only applies to the GUI, meaning that I still need to be SSH'd into my music server to control it fully. The web interface scripts are unfortunately fairly simple and still require substantial mucking around.
I love New Zealand music in particular, and one of the things I thought Amarok did particularly well was handling podcasts. The ease with which I was able to add an RSS feed and play episodes from it immediately encouraged me to catch up on Liz Barry's NZ Music show which has always wanted to play on my laptop when I use my normal RSS reader. Now that I've done this through Amarok I can see that whatever I switch to will need to support this sort of thing in a straightforward manner.
It all looks pretty hopeful though so I might look to taking some client/server model music player, tying it into the Amarok database, and making a front-end work with that. I'll probably pick over my existing code and see if something could be done with that, or take a look at Music Player Daemon (mpd) which seems to start with many of the ideas about remote control that are right for me, albeit without the database support that I like in my own setup, and which Amarok seems to do very well.
I've done all my interface coding for my existing setup as a web front-end. The Music Player Daemon doesn't rely on a web interface though - it is a more traditional client-server model, and this is undoubtedly a good way to be for something where the action happens at both ends in an asynchronous manner. There certainly seem to be a good set of clients for mpd.
In any case the time has definitely come to reexamine my options for playing music. It's probably five years since I set this up and wrote my crude player and the world has moved on.