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 for audio analysis and synthesis
It is specially well-suited for spectral analysis/synthesis
It includes features that make it suitable for Music Information
Retrieval
It can be used to build real-time, efficient applications
In any case you should keep on reading the rest of this
FAQ as well as any other CLAM documentation
that can help you out in the decision.
Back
What
should be my background in order to use CLAM? |
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:
1- You just want to use a pre-compiled
example such as SMSTools: In this case you are only required
to have some previous signal processing knowledge in order
to understand what is going on
2- You want to use one of the provided
examples: Then you will need to install CLAM
and compile the example you are interested on. Installing
CLAM in MS Windows is quite straightforward
but in GNU/Linux it may be tricky depending on your distribution
and whether you meet CLAM's
requirements (please refer to the appropiate chapter in
the documentation). In any case, once CLAM
is deployed in your system all you will have to do is
compile the required example. This is a one-liner in GNU/Linux
but you will fight to fight your way in MS Visual C++
on Windows.
3- You want to develop your own application:
Appart from the previous requirements you will need some
knowledge in C++ programming. It is true that some people
learn CLAM and C++ at the same time
but this might not be a gentle way of learning a language
such as C++.
4- You want to become a CLAM
developer: All you need after the previous step is to
send us in your code!
Back
Why
does CLAM depend on so many 3rd party libraries? |
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).
Back
Is
CLAM a "library" or a "framework"? |
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.
Back
Are
there any similar frameworks? |
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.
Back
How
should I approach CLAM? |
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.
Back
What
is the future of CLAM? |
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.
Back
What
if I want to use CLAM in a non-Free project? |
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.
Back
|