First of all, all the credits go to Jon Lech Johansen, aka DVD Jon, who released JustePort, a tool which lets you stream MPEG4 Apple Lossless files and RAW audio files to your AirPort Express. More info in his blog: http://nanocrew.net/index.php?s=justeport
(He accepts donations )
This is the only open source tool I've found to stream audio via wi-fi to the Airport Extreme base station.
What you can do with this How-to:
It's pretty basic, you can stream wirelessly single mp3 files or all the files in a given folder to your Airport Express base station (pretty basic AirTunes functionality). Hopefully this will inspire other people to make xmms/amarok/vlc plugins to accomplish more advanced functionalities.
What you need:
JustePort.exe: Download JustePort-0.2.tar.gz from http://nanocrew.net/sw/justeport/JustePort-0.2.tar.gz. Extract the contents somewhere, open a terminal, navigate to the folder you just extracted and compile JustePort with mono typing the following command:
sudo apt-get install mono mono-gmcs
That will make a file named JustePort.exe that you'll have to move to /usr/bin/ to make it available as a shell command:
mcs -out:JustePort.exe *.cs
lame (free mp3 codec): If you're able to play mp3s chances are that you have it already installed, otherwhise type the following command in a terminal:
sudo cp JustePort.exe /usr/bin/
sudo apt-get install lame
Ok, once you're ready, you can type the following command in a terminal to play a single mp3 file (assuming the mp3 file is in the current directory and its name is file.mp3 and that the IP address of your airport express base station is 10.0.1.1):
On step further: to play all the mp3 files in a given folder, open the terminal, navigate to the folder containing the mp3s, and type the following command:
lame --decode file.mp3 - | JustePort.exe - 10.0.1.1
Note: you can simplify it a little bit by making an alias (for example, "playall"). Again, in a terminal type:
cat *.mp3 | lame --mp3input --decode - | JustePort.exe - 10.0.1.1
Now, to play all the mp3s in your current folder you just have to type playall.
alias playall="cat *.mp3 | lame --mp3input --decode - | JustePort.exe - 10.0.1.1"
EDIT: Aliases defined like this will be valid only for your current session (if you log out or reboot they disappear). If you want to make your alias permanent open the file .bashrc located in your home directory: and add the alias to that file.
That's it for the moment, but you basically can stream any audio format if you have the right tool (for example, to stream ogg you'd type: oggdec -Q -R -o - file.ogg | JustePort.exe - 10.0.1.1). Just try things and if they work post them here.
Again, thanks to DVD Jon for making this possible.