Introduction to CLAM
In this first part of the tutorial we will become familiar
with the most important concepts in CLAM.
We will also experiment what working with a free framework
(GPL) means, using the tools that are usually included
in this kind of distributions.
To begin with, please point to CLAM's
website (www.iua.upf.es/mtg/clam). In the "docs"
section you will find all the publicly available documentation.
Throughout this tutorial be sure to consult both the CLAM
User and Development Documentation and the Doxygen documentation.
While the User and Development Documentation covers most
of CLAM's concepts and design, the Doxygen
contains more detailed technical description of interfaces
and such. The Doxygen documentation is derived directly
from interface comments and because of this is, in general,
more up-to-date than the User and Development Documentation.
Answer the following questions about CLAM:
- After reading the introductory description of CLAM,
what are the main features of the framework? (Try giving
a short and schematic answer to this question)
- Define briefly the following CLAM-related
concepts: Dynamic Types, Processing classes, Processing
Data classes, Controls.
- What support does CLAM offer for
XML, Audio input/output, SDIF and MIDI?
- Explain with a few words each of the Processing Data
classes that are included in the CLAM
repository.
Every open project should have an associated mailing
list. Follow the link in the web and please add your name
to the mailing list.
CLAM also has a bug managing section
that uses the Mantis tool. Go to the "bugreporting" link
in the web and add yourself as a user. Any bug you might
find in CLAM from now on will have to
be communicated to the CLAM team using
this tool.
CLAM also uses third party libraries.
Point your browser to the "links" section of CLAM's
web.
- What external libraries does CLAM
use and what is their functionality?
Right now you should decide whether you would like to do
this tutorial in the Linux using GCC or Windows platform
using Visual C++. Read the "How to compile" section of the
manual for the platform you have chosen.
Now you will have to 'download' the CLAM code
into your local drive. At the time of this writing, CLAM
only offers tarballs (compressed single archive that contains
all the sources). The previously existing public CVS has
been closed down and CVS is only used internally. Don't
forget to also download the necessary external libraries,
depending on your particular system.
Now that you already have the CLAM sandbox
in your local drive:
- What is the structure and what is inside the /src
folder?
You will also have to take a look at the /build folder.
- What is inside this folder (please read chapter 5
in CLAM's documentation to understand
how the Build System Works)?
Now we are ready to start compiling.
Compile and execute some of the simple examples and comment
the result.
Finally compile the SMSTools application, which will be
used in the next part of the tutorial.