Sonata Music Player

Filed under: sonata music 

My recent discovery of Songbird and rediscovery of AudioScrobbler and last.fm have sent me on a journey to get a music setup I'm happy with.

http://sonata.berlios.de/images/t_sonata1.jpg

Since I work mostly on a laptop and my music is on a desktop machine which also happens to control the good speakers, I prefer a client/server type system (yes, I can ssh -Y and run something, but that has serious limitations as you'll see).

My requirements are this: 1) be able to remotely control the player and have the music come out the nice home speakers when I'm at home. 2) be able to stream music over the web so I can still listen to music while I'm away from home. 3) not require that I start 4 different programs depending on location. 4) be able to update last.fm (yes, it's become a requirement).

So, clearly "ssh -Y" won't work as it can't stream music remotely in any elegant way.

I considered all the upcoming client/server music players (XMMS2, BMPx, MPD) and while BMPx would be what I'd choose if UI were the only factor and MPD appears to be the least elegant and least ambitious project, MPD also happens to be the only truly functional player of the group (I'm sure this is largely due to the perhaps overly ambitious scope of the others).

So, server-daemon settled on, I needed a way to both stream and play over the local speakers. Luckily the recent versions of mpd provide icecast as an optional output so that was a non-issue. I'll leave how I solved playing over the local speakers to your imagination.

Anyway, next up was finding a good mpd client. In the past I'd used gmpc, but it's pretty spartan and IMO resembles more of a proof-of-concept than something to be used day-to-day.

First I tried Pympd and almost stayed. It's pretty good. One thing that bothered me was searching. Pympd tries to do a live search as you are typing. Hint to Pympd developers: I've got a little over 17,000 files to search. It's painful when each letter typed causes a 5 second delay while Pympd narrows in on my selection. I'm more than willing to hit enter. Really. Another thing that bothered me is the volume control. I'm not a fan of the drop-down volume slider. Aside from skipping tracks, the volume is the most frequently used feature. It should be controllable with the scrollwheel (like xmms) or at least immediately accessible (yes, that one extra click is annoying, especially on a laptop where the pointing device remains a bit awkward). Also, Pympd fails to jump to the current track automatically. It's nice to be able to see what's playing and be able to select an adjacent song with minimal clicking. Anyway, those complaints aside, Pympd is pretty nice and as I mentioned, I almost stuck with it.

Next up I tried Sonata. It's still not the perfect player but it's so far the best I've discovered in the MPD world. It shares the annoying volume control that Pympd has (although clicking it and scrolling does adjust the volume, it's still suboptimal). Anyway, it's pretty close to what I'm looking for. It has the prettiest song-change popups yet (complete with album art), and provides a nice compact interface (and it collapses down to even more compact). It also has a few other little features that make it nice (keep on all workspaces, keep on top, etc), it's fast, it automatically tracks the playing song in the playlist. It's missing some esoteric features, but IMO those should be the last features implemented, so I think the developers are on the right track. Now if I can just get them to drop that damn iTunes-style volume control...

As it turns out, none of the MPD clients have built-in AudioScrobbler capabilites (well, Pympd can query last.fm, but not update it). Luckily there are several daemon "clients" that can. I tried AudioScribbler but the fact it couldn't handle crossfading was kind of annoying (especially because one of the GUI clients I was testing would inadvertently turn it on all the time). I finally settled on scmpc which seems to be working well.

I think this is about as close to the perfect setup as I can currently hope for (without putting a bunch of hours into writing my own software).



0 comments Leave a comment