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 5 major areas.

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 spring semester:

Plans for the summer semester:

These plans are in priority order. Items will be attempted as time permits.

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:

to be written...

Suggested Enhancments:

more devices
more codecs
more transports
...

Acknowledgements:

Henning Schulzrinne

RAT from University College in London Sun Microsystems Stichting Mathematisch Centrum, Amstredam, The Netherlands 4Front Technologies: Microsoft Corporation: Speak Easy: Comments:

At the beginning of this project we did not really understand the scope of the project. Most of the concepts and necessary knowledge has had to be gained through research, reading documentation, and experimentation. It turns out that creating a robust cross platform audio device abstraction alone is quite a chore.  The code that does exist seems to be tangled up within an audio application. Codec code also seems to be mixed in with applications or proprietary. The bottom line seems to be that there is a lot of code out there, but not much good information. We have had to balance exposing the complexity of a large number of capabilities of various platforms and creating something that is easy to use. We think the progress made up to now is pretty good considering the complexity of the task.