CLAM Tutorial - Part 1

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:

  1. 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)
  2. Define briefly the following CLAM-related concepts: Dynamic Types, Processing classes, Processing Data classes, Controls.
  3. What support does CLAM offer for XML, Audio input/output, SDIF and MIDI?
  4. 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.

  1. 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:

  1. What is the structure and what is inside the /src folder?

You will also have to take a look at the /build folder.

  1. 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.