Airtunes+Ruby+RAOP+Pulse+MPD = Massive Win
Have a couple of Airport Express units lying around ? Sick of having to use iTunes to manage your library of MP3's just because it's the only thing that can stream to your Airport's ? Well, let me tell you a little story.
I like MPD  and think it's a pretty hard act to beat, especially when combined with Theremin . Unfortunately MPD is really built assuming that the "server" which hosts your music also hosts your sound card. Getting MPD plugged into your Airport Express units requires a couple of hops.
Firstly, you need to install Pulse Audio  - the "next gen" audio server for Linux. Then, you can configure MPD to output it's audio to the Pulse Server using the following config block in mpd.conf
name "My Pulse"
Then, startup the Pulse Server and install the module-pipe-sink module. This module takes any audio that enters Pulse and outputs it to a FIFO - /tmp/music.output. Make Pulse listen on the local network to incoming sound.
root@merlot:~# pulseaudio -nC
Welcome to PulseAudio! Use "help" for usage information.
>>> load-module module-pipe-sink
>>> load-module module-native-protocol-tcp listen=0.0.0.0
Then, take the Ruby:RAOP package  and run the following Ruby script.
raop = Net::RAOP::Client.new("192.168.1.183")
raop.volume = 5
FINALLY, start up your MPD daemon. If you get security errors in Pulse, make sure MPD is running as a user that has access rights to the pulse server (i.e. be naughty, just use root and don't tell anyone)
What all this get you ? MPD outputting audio to pulse, which gets sent through a FIFO into Net::RAOP::Client which then streams the audio to 192.168.1.183 .... or whatever the IP of your Airport Express unit is.
Easy, right ?
 - http://www.musicpd.org/
 - https://theremin.sigterm.eu/
 - http://www.pulseaudio.org/
 - https://rubyforge.org/projects/raop/