I recently invested some time in getting my WL-500g router to wirelessly play audio from Winamp, and I'd like to share this information with everybody, as I couldn't find much about this topic in the forums. The whole text is also available on this web page.
Installing EsounD on the WL-500g
For receiving sound streams on the router and playing them on the USB sound card, the well-kown EsounD daemon is used. You can either install it as an ipgk from Unslug or download the binary file from this location:
EsounD daemon binary:
esd
Before starting it, the default ASUS sound server (useable only from Windows Media Player) needs to be killed, as it occupies the sound card:
Code:
killall waveservermain
killall waveserver
Then the esd daemon can be started:
Code:
esd -d /dev/sound/dsp -tcp -public &
Connecting to the soundcard from a client computer
If you are running Linux, you can use an audio player like XMMS or amaroK, choose an EsounD output plugin (gstreamer in case of amaroK) and enter the server's IP address.
In order to connect to the EsoundD server from Windows, Kasper Laudrup has a nice EsounD output plugin for Winamp available at his site. Note that for Winamp 5 you need to download the Winamp 2 version, not Winamp 3. At the bottom of this page, there also is a link to an updated version, which includes better resampling.
Special issues with the Audigy 2 NX
If you have a Soundblaster Audigy 2 NX USB soundcard, some extra work has to be done as this one is not completely behaving like a normal USB soundcard. However, at least on Windows this is an excellent sound card, and it has a very good signal quality.
Updated kernel module
Note: the patch is included in the firmware from version 1.9.2.7-7b on, so it is no longer necessary to replace the module
The standard ASUS usb soundcard driver does not work with an Audigy 2 NX, so I had to patch it. Now it seems to run pretty stable. You can download the updated kernel module here:
binary module (compiled for 1.9.2.7-6b firmare):
audio.o
patch for the original kernel code:
audio.c.diff
To install the module, either replace the file in /lib/modules/2.4.20/kernel/drivers/usb/ (if you are running off a USB drive) and reboot or download it to some other location and exchange the module in the kernel with the following commands:
Code:
rmmod audio
insmod audio.o
Resampling
In case the soundcard uses a different sampling rate than your sound files, the esd daemon on the router will automatically resample the audio stream. Normally this should be no problem, as esd by default runs at 44100Hz, which also is the sampling rate of most MP3/Ogg/AAC/... files and therefore no resampling should happen. However, if you have an Audigy 2 NX, esd will only run at 48000Hz. Now the problem is that esd does a pretty bad job at resampling which results in audible loss of sound-quality, especially at high frequencies.
The solution was to modify the esd Winamp plugin to automatically resample to the server frequency using the Secret Rabbit Code library, which provides much higher conversion quality. The updated Winamp2/5 plugin is available for download at the following location:
To install, just copy the dll into the Winamp/Plugins directory and configure the plugin from Winamp preferences.
Of course, you use the information given here and the software available for download at your own risk. The author is not responsible for any damage it may cause to your computer or router.