CLAM stands for C++ Library for Audio
and Music and in Catalan means something like "a continuous
sound produced by a large number of people as to show
approval or disapproval of a given event" It is the best
name we could find after long discussions and it is certainly
much better than its original name (MTG-Classes).
CLAM
is a full-fledged software framework for research and
application development in the Audio and Music Domain.
It offers a conceptual model as well as tools for the
analysis, synthesis and transformation of audio signals.
The original goal of the CLAM development
framework was defined as:
"To offer a complete, flexible and platform independent
Sound Analysis/Synthesis C++ platform to meet current
and future needs of all MTG projects."
The three main axes of these goals were defined as:
- Complete: should include all utilities needed in a
Sound Processing Project (input/output, processing,
storage, display...)
- Flexible: Easy to use and adapt to any kind of need.
- Platform Independent: Compile under UNIX, Windows
and Mac platforms.
These initial objectives have slightly changed since
then mainly to accommodate to the fact that the library
is no longer seen as an internal tool for the MTG but as a library that
is published under the GNU-GPL in the frame of the Agnula IST European Project.
Another Audio Library ?
What makes CLAM different from other
similar solutions that already exist?
- To begin with, CLAM is truly object
oriented. Extensive software engineering techniques
have been applied in order to design a framework that
is both highly usable and understandable.
- CLAM is comprehensive as it not only
includes classes for audio and music processing but
also for audio and MIDI input/output, XML serialisation
services, a Visualization Module or multithreading handling.
- The framework is cross-platform. All the code is regularly
compiled under Linux, Windows and MacIntosh using the
most commonly used compilers. Even the code for input/output,
visualisation and multithreading is cross-platform down
to the lowest possible layer.
- The project is GPL. Although we maintain the option
of double licensing the framework, everything offered
in the public version in the course of the AGNULA project
will be GPL and the project will thus become open-source
and collaborative.
- CLAM is bound to survive. Although
its public success is by no means guaranteed, CLAM
will remain the basis for all future developments in
the MTG
and thus will be maintained and updated in a regular
basis.