the audio section is done entirely on a linux system.
on this demo (which I have since abandoned) I used the ethernet shield to be a web client of mpd's apache interface. requests would go from the arduino over IP to the webserver and replies would be parsed and displayed on the lcd as song name, play length and so on.
it was not a great idea though. the ethernet shield is just too limited and too buggy for serious use (imho).
my new idea is to use an embedded fanless linux board (current fave is a seagate dockstar hacked to run debian on a thumbdrive) and that still runs apache and mpd as well as usb-audio (spdif out). my plan is to have a serial link between the linux box and the arduino and have some compressed efficient comms protocol run over that.