Thursday, May 04, 2006
Network Audio Service
The Network Audio System (NAS) is a free client/server network audio transport system for playing, recording and manipulating audio data originally designed by Network Computing Devices (NCD). This added layer of abstraction allows a separation of application code from specific audio drivers for audio input and output. It has been described as the audio equivalent of an X Windows server.
Some key features of the Network Audio System are:
Device-independent audio over the network connection. Audio output can be sent from the networked based application to the desktop computer and audio input can be sent to the network based application from an audio device, such as a microphone, on the desktop computer.
Caching sounds on the server can reduce the amount of audio data needed to transfer over the network.
Many audio file and data formats are supported.
Extensive mixing, separating, and manipulation of audio data from a single source or multiple sources.
Simultaneous use of audio devices by multiple applications.
Small size.
Provides a comprehensive API for adding NAS capabilities to applications.
Free.
Many popular Audio Systems have native NAS Support: mplayer, mpg123, GAIM, XAnim, Festival, OpenOffice, XEmacs, libSDL, The Qt Library, XPilot, to name a few. Also there are quite a few plugins that provide NAS support: Wine, Gstreamer, X MultiMedia System (XMMS), Alsaplayer.
Installation
wget http://nas.codebrilliance.com/nas/nas-1.7.src.tar.gz
tar zxf nas-1.7.src.tar.gz
cd nas-1.7
xmkmf
make World
paco -lp nas-1.7 "make install; make install.man"
Conclusion
With the revitalization of Network based applications occuring (think how popular AJAX is becoming), it is important to be able to provide network applications with rich audio capabilities to maximize the end user experience. NAS is quite a nice implementation of such a technology and it has a Free license similar to the BSD license.