I talked about this, and demonstrated it, in a lightning talk in Ireland on YAPC::Europe.

Short explanation is, that if a internat radio station has the playlist available on the internet too, and the playlist is reasonably well in sync with what is actually played, you can write a script that reads the playlist, and adjusts the volume of the radio (volume is player independant) based on a list of groups you have and a rating you put with each performer.

The next step is to switch station if the station starts playing things you don't like. All xmms like players (and many others probably too) support external interfaces that control there behaviour.

Once you have found two stations on choice, you can freely alternate between those and vary the volume.

For me the fun went further, because the station it all started with supports an internal rating system. You can rate songs as they are played, and you can put comments with each song..

I then read back these ratings, make an avarage score per performer, and control volume and station switch on these scores.