raop_play is a music file player for Apple Airport Express, the main functionalities are as follows: * Make AEX become your 2'nd sound card device. http://raop-play.sourceforge.net/alsa_raoppcm.html * Discover Airport Express by Apple Rendezvous * Browse music files (Supported music file format: m4a(alac or aac), wav, mp3, ogg, flac, aac, pls, raw pcm) * Send selected files to the Airport Express * Play mp3 stream data (filename started with "http://")
source: http://prdownloads.sourceforge.net/raop-play/raop_play-0.5.1.tar.gz?download debian(sarge) package: http://prdownloads.sourceforge.net/raop-play/raop-play_0.5.1_i386.deb?download
openssl library and header fltk1.1.4 library and header fluid (this comes with fltk1.1.4) libglib-2.0 header only libsamplerate library and header (Secret Rabbit Code, http://www.mega-nerd.com/SRC/index.html) libid3tag library and header In Debian case "apt-get install" for the next packages libssl,libssl-dev,libfltk1.1-dev,libfltk1.1c102,fluid,libglib2.0-dev, libsamplerate0, libsamplerate0-dev, libid3tag0, libid3tag0-dev To play mp3 data, mpg321 needs to be in the executable path. To play ogg data, ogg123 needs to be in the executable path. To play aac data, faad needs to be in the executable path. To play flac data, flac needs to be in the executable path.
./configure make make install # SUSE users may need the next way CPPFLAGS="-I/usr/X11R6/include" ./configure CXXFLAGS="-I/usr/X11R6/include" make make install Note: if you see a message like "aexcl_gui.cxx : No such file or directory", you are missing 'fluid'. aexcl_gui.h and aexcl_gui.cxx are generated by 'fluid'.
aexcl_play [--ipod ipod_mount_point] [--aexip AEX_ip_address] [audio_data_directory] (e.g. aexl_play --ipod /mnt/ipod /home/cat/audio_data) The gui shows list of accessible Airport Expres, you choose one of them. In the ipod mode (check "ipod" check box) You can browse songs like what your ipod browser does. On a songs level menu, select files you want to play, then Push the play button. In the local file mode (don't check "ipod" check box) Select audio files you want to play, then Push the play button. Pushing the forward button, it goes to a next selected song. Pushing the rewind button, it goes to a previous selected song. Checking the repeat box, it goes back to the top selected song when it finished the last selected song.
If the filename starts with "http://", which is decoded by mpg321 and sent to the selected Airport Express. The gui doesn't have a way to input http://* type name. To play from the gui, you need to prepare playlist file (*.pls file) which includes http://* type name. To play from an internet browser, create a script as follows:
#!/bin/sh if pidof raop_play > /dev/null ; then killall raop_play sleep 10 fi raop_play YOUR_AEX_IP $1
Selecting this script from your internet browser, you can listen to internet radio stations which provide mp3 stream. To kill previously running raop_play takes a long time: 10 seconds, which is very long. And there is no way to stop playing other than running kill command manually. The gui may support the playing from an internet browser in future version.
Either usb or ieee1394 can be used to mount an iPod, For the usb, most of cases just need a mount command like the next: mount -t vfat /dev/sda2 /mnt/ipod (sda2 could be sdb2,sdc2,..., by the number of scsi disk devices) For ieee1394, here is a good document: http://www.gnu.org/software/gnupod/gnupod.html#SEC5
This package consists of three programs: aexcl_play, raop_play and mDNSClient. (about the alsa driver, check drivers/README) <aexcl_play> this is a gui to manage raop_play and mDNSClient, and to browse music files. this uses fltk-1.1.4 library. fltk is available at http://www.fltk.org. Now the latest stable version is 1.1.5, it is probably all right to use this version. To parse itunesDB file, I picked up itunesdb.c from the gtkpod (http://gtkpod.sourceforge.net) by Jorg Schuler. That parser is originally written by Adrian Ulrich as a perl script "mktunes.pl", which is provided in gnupod-tools (http://www.blinkenlights.ch/cgi-bin/fm.pl?get=ipod). itunesdb.c was simplified for read only purpose. Since I wanted to play this program on an ARM9 based small board (frame buffer + microwindows + nxlib + fltk1.1.4), I removed the glib dependency by providing glibsubst.c. But it still needs glib header files. Using libglib-2.0 might have a better result, you can remove "GLIB_SUBST=1" in aexcl/Makefile to use libglib-2.0. <raop_play> This is a ported version of "JustePort" which is programed by Jon Lech Johansen. Please look at raop_play/README <mDNSClient> Apple rendezvous client program to discover accessible Airport Express. I've slightly modified the original Apple code. Original Apple source codes are from mDNSResponder-58.8.tar.gz; the tar file is available at http://developer.apple.com/darwin/projects/rendezvous/
Shiro Ninomiya <shiron_AT_snino_DOT_com>