Audio Daemon is a perl module that enables various players to run in the background as a daemon while supporting a single UDP interface for these players.
Audio Daemon is composed of two parts – the client and the server. The client (Audio::Daemon::Client) remains the same across the board no matter what server you are communicating with, with a few exceptions noted in the pods. The server can currently be configured to be MPG123, Xmms, or an Icecast (libshout) stream.
One thing that stood out to me while using Audio Daemon is that neither the client nor the servers need to be run as root, and I strongly advise against it.
Audio Daemon::MPG132 requires Audio::Play::MPG123 and Audio::Mixer for volume control. It automatically spawns mpg123 in the background, so there is no need to prestart it.
Audio Daemon::Xmms requires the Xmms and MP3::Info Perl module as well as Xmms to be installed. I suggest getting the latest version of the Xmms Perl module. It uses the volume and random feature built into Xmms, and if it doesn't find an Xmms running, it will try to spawn its copy. However, keep in mind that Xmms MUST HAVE an X display to export to, and that Xmms must be running as the same user as Audio Daemon::Xmms.
Audio Daemon::Shout, on the other hand, requires MP3::Info and libshout to be installed, as well as a functioning icecast server. The timing here is crucial, so be careful not to be polling the server too much. I strongly recommend reading the icecast docs, as I'm still confused about how I got this part to work.
Overall, I found Audio Daemon to be a remarkably useful and flexible tool for managing audio players. It is well-built, well-documented, and incredibly versatile, and I highly recommend it to anyone who needs to manage multiple audio players with ease.
Version 0.99: N/A