Will CLAM suit my needs?
What should be my background in order to use CLAM?
What can CLAM do?
Why does CLAM depend on so many 3rd party libraries?
Why is CLAM so hard to install/deploy?
Is CLAM a "library" or a framework?
Are there any similar frameworks?
Who is behind CLAM?
How should I approach CLAM?
What is the future of CLAM?
What if I want to use CLAM in a Proprietary system?
This is of course the million dollar question. It is difficult to be sure whether CLAM can suit your needs until you really try it out. Nevertheless, here are a few hints that may help you decide:
CLAM can be used at many different levels and for different purposes so you background may vary depending on your particular requirements. In this sense we can distinguish at least the following three levels of usage:
Although CLAM can be used for many different purposes a good way to learn what it can do is to review the functionalities illustrated in the examples available in the repository. According to these examples you may use CLAM to:
CLAM aims at offering all necessary services for building an audio and music application. This implies many different tools and possible requirements. Some of those tools already exist and, as it makes no sense implementing them from scratch, all we do is take them and adapt them to the CLAM interface or "way of doing things". Put in other words, CLAM would be unthinkable without the great work of all those developers.
Note that a different question is "why do I need library X if I am not going to use its features?". That is a flaw in CLAM's current deployment system on GNU/Linux that will be soon fixed (read next FAQ for more related details).
This question refers to the difficulties of deploying CLAM on a GNU/Linux distribution though some questions may apply to other platforms.
The task of installing new non-standard components to a GNU/Linux distribution may be a tricky task anyhow but there are some reasons that make CLAM especially bound to give problems. These can be summarized in the following list:
CLAM is a software framework as defined by Ralph E. Johnson. CLAM does not only offer a set of functionalities but also provides a conceptual metamodel or way of doing things. Read X. Amatriain's phd if you are interested on this theoretical discussion
There are a few frameworks that overlap with CLAM's goals.
If you are only interested in audio analysis and feature extraction you should check:
If you are interested only in audio synthesis you should check:
And if you are looking for a framework with both analysis and synthesis capabilities check:
In any case, CLAM presents both conceptual and practical differences with all of them. If you are interested in a thorough presentation of CLAM alternatives and how they compare to our framework please refer to X. Amatriain's phd .
CLAM is currently supported and developed by some members of the Music Technology Group at the Universitat Pompeu Fabra. Our group is located in sunny Barcelona and our head is Dr. Xavier Serra. CLAM has always had a stable core of four to 6 developers though none of us can really work even halftime on it
CLAM has had support from a number of public European projects such as AGNULA or SIMAC and is used in many of our internal projects.
There are different ways to approach CLAM that depend on your previous background. Our usual way to introduce CLAM to newbies is to point them to the "Introduction" and then to the CLAM "tutorial". This tutorial, though, is quite long and introduces other concepts appart from CLAM (such as the SMS model). In your case it might be easier to start off by reading some simpler examples. You will have to do it anyhow at some point.
CLAM should soon be more stable once it reaches its 1.0 release. Read the CLAM Roadmap to learn what are the previsions. CLAM will be used internally so its continuity is more or less guaranteed. Nevertheless we hope that it can soon become more "collaborative" and we can start accepting contributions from external users
CLAM is GPL and therefore Free as defined by the Free Software Foundation. This means that you can use it with no restrictions as long as the result remains Free. If you want to use it from within a proprietary application then you should definitely talk to us. We use a double licensing scheme (ala FFTW) so CLAM can be (and as a matter of fact has already been) licensed for non-free usages.