The CLAM Framework

CLAM (C++ Library for Audio and Music) is a framework that aims at offering extensible, generic and efficient design and implementation solutions for developing Audio and Music applications as well as for doing more complex research related with the field. CLAM is both the origin and the prove of concept of the Digital Signal Processing Object-Oriented Metamodel that is central to this Thesis and will be presented in the next chapter.

In the current chapter we will give a thorough overview of CLAM's main features and we will introduce some contextual information that will help in understanding why some design decisions have been taken. We will finish the chapter by comparing our framework to some of the similar solutions presented in the previous chapter.

It is important to note that most of the more conceptual and generic models and metamodels that will be presented in the next chapters were obtained during the design and development of the CLAM framework, usually as the generalization of solutions found for particular situations. It is therefore important to understand what the framework offers and what were the design decisions. In that sense we repeat here again our hypothesis that ``frameworks generate metamodels''.