CLAM
DISCLAIMER: What you
will find in this website is still beta version of the CLAM
library, published in the context of the Agnula IST
project
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.