COMS6901-008 Projects in Computer Science
Network Audio Library
Authors:
Dirk Bridwell dnbridwell@earthlink.net
Jan Miller janalanmiller@uswest.net
Abstract:
The NAL library is a multi threaded cross plartform audio library for
creating network audio applications. The library is written in C++ and
intended to used by C++ applications. The intention is to have an object-oriented
library which reduces the time and effort needed to create an audio application.
The library includes facilities which ease degugging and performance management
of an application.
Architecture
The NAL Library is subdivided into 6 major areas. A the first diagram
is an overview of the major areas relate.
- Audio Devices
- Codecs
- Network
- Common
- NAL Root
- Utils
For more on the architecture of NAL see the Rational Rose model. It contains the above diagrams as well as details on the classes.
Accomplishments for the summer semester:
-
Four codecs in nice class wrappers with factory: g711, g726, DVI, and GSM.
-
Test program for codecs.
-
Developed platform independent thread, and synchronization classes: thread, mutex,
semaphore, condition variable, exception safe guard for WIN32 and POSIX.
-
Test program for the thread and synchronization classes.
-
Beginnings of RTP classes (written, not tested)
-
Platform independent audio device driver that can read, write, and select
audio formats.
-
Test program for audio devices.
-
The device software has been compiled on Linux, but not tested.
-
A debug class has been integrated into the library.
-
Documentation has been greatly improved.
-
Adherence to coding standards.
-
Added 3000 lines of code bring the total lines of developed code to around 8000.
-
Wrote 1000 lines of test code.
System Requirements:
The library requires Visual C++ and Windows to compile on Windows. Autoconf,
gcc, and g++ are needed to compile on various UNIX machines. Audio devices
supported by the platform should work with the library.
Installation Insrtuctions:
to be written...
Configuration:
to be written....
Operation:
to be written...
Program Internal Operation:
to be written...
Broken Things and Restrictions:
- RTP Library needs testing.
- Input volume on Win32AudioDevice is not working correctly.
- Linux audio device have been compled, but not tested
- The parts need to be integrated to form library.
Suggested Enhancments:
more devices
more codecs
more transports
...
Acknowledgements:
Henning Schulzrinne
-
Nevot for understanding of audio application design.
-
Playout algorithm design using Forward Error Correction.
RAT from University College in London
-
Ideas for system structure.
-
Device implementation semantics.
-
Codec format structure.
-
Audio data formats and structure.
Sun Microsystems
Stichting Mathematisch Centrum, Amstredam, The Netherlands
Jutta Degener and Carsten Bormann, Technische Universitaet Berlin.
4Front Technologies:
-
The Open Sound System documentation.
Microsoft Corporation:
Speak Easy:
-
Audio application design.
Comments:
At the end of the summer semester we had planned for a complted library.
Unfortunetly we did not get this far. The amount of effort needed to debug
and test the audio drivers on windows far exceeded our expectations.