Wednesday – 11:00-11:45
Convention Ctr - Exhibit Hall 4A

2 – CLAM: An OO Framework for Developing Audio and Music Applications

Xavier Amatriain
Music Technology Group - UPF

Maarten de Boer
Music Technology Group - UPF

Enrique Robledo
Music Technology Group - UPF

David Garcia
Music Technology Group - UPF

CLAM (C++ Library for Audio and Music) is a framework for developing cross-platform applications and research works in the audio and music domain. The framework offers general infrastructure and services that dramatically improve development speed and final code quality, thus enhancing re-usability and portability.

In the CLAM framework data types as well as processing and flow control entities are objects that respond to a well-defined and clean interface. For doing so we have had to fight against a well established idea in the DSP community: well structured code compromises run-time performance.

CLAM is unique and different to other existing solutions in many senses: it is more OO, it is written in C++, it is cross-platform, it is Free Software and it is efficient.

For implementing CLAM services the multiparadigm nature of the C++ programming language has been exploited. OO techniques have been combined with template metaprogramming, static dispatching or C-like macros to reduce the programmer's effort.

The demo will consist of the execution of some sample applications such as:

All demos will be run on Windows and Debian-Linux on a regular PC platform. Code will be shown for all applications and issues related to efficiency, robustness, code simplicity and readability will also be discussed.

Some of CLAM's main features will also be illustrated: