Behold my latest gadget: .
It is a Squeezebox, a thin client music playback system; music is streamed from my flat server running the squeezebox daemon (which is opensource and available on many platforms).
This seems the ideal solution to the problem of multiple codecs to me: the server takes care of translating from the million-and-one music codecs it supports into a couple of formats that the client supports and streams that data across the network (wired or wifi). So by adding support for a new codec/format to the server, the client device will support that as well! It even supports streaming radio.
I’ve integrated it into my asterisk PBX system so the callerid of callers flashes up, and I can also listen to voicemail through it.
There is a large developer community behind it, with many useful plugins. The alarm clock support is quite nifty too: individually configured per-day alarm times, with selectable playlists. I leave it on random, which provides some interesting music to wake up to (Laibach’s WAT the other day 🙂