CLAM Music Annotator-Everything You Need to Know Before You Use It

The Musical Technology Group from Universitat Pompeu Fabra in Barcelona released a new version (0.3.1) of CLAM Music Annotator, a GPL scientific tool for analysis and musical annotation. The purpose of the project is to supervise and correct the results of automated audio-feature extraction algorithms and generate manually edited annotations of audio as training examples or ground truth for those algorithms.

This new version features a chord detector, made in collaboration with the Queen Mary University of London, which can analyze Ogg, mp3 and Wav files using the Christopher Harte algorithm with some minor variations. Results are presented in user-friendly screens.
Music Annotator is built around CLAM, a C++ Library for Audio and Music. Binaries for Linux, Windows and Mac OS X are available at the download section of the project homepage.

The CLAM Music Annotator is an application of the CLAM framework that can be used to do the modifications, checking and visualization of the music information taken out from audio such as its low-quality features, articulation, chords, texture, tempo, note segmentation, and structure.

Included Extractors

You can add extractors and data sources freely to The CLAM Music Annotator because of its architecture. You just need to provide an executable followed by proper command line and output conventions. You can easily follow command line and output conventions as in CLAM Music Annotator, the python was used successfully to unfold already exists extractors that didn’t follow the standards. This CLAM Music Annotator contains two example extractors. Among these two, one used to compute low-level descriptors and the other one performs
chord detection.

Read more: New Zoom H2 Handy Recorder – The Ultimate Portable recording device

Clam Extractor Example:

The ClamExtractorExample is one of the simple examples of extractor using CLAM. It is known for generating four kinds of descriptors:
1. Low-level spectral descriptors
2. ID3 descriptors
3. Random segments (they are random because they just do the testing of the Music Annotator)
4. Random high-level descriptors


This extractor is used to extract segments labeled with chords. In this, Christopher Harte algorithm is used with some minor variations. This extractor has been developed in the collaboration between the Queen Mary University of London and the Universitat Pompeu Fabra.

Also read: Zerotronics CoolSprings MINI-LE Stereo Reverb


The CLAM Annotator is not bonded to have a fixed description scheme (the set of attributes). You can define the working attribute set by providing XSD (XML schema definition). The Annotator already comes with few Illustrative description schemes and extraction programs, but you could implement your own with different algorithms and attributes. Also, tools are provided to select and join attributes from the output of several description sources.
Other key features include:
• Attribute types available are Free text, Enumeration, Bounded float, Bounded integer, Float array, Frame Division (Equidistant division) and Segmentations (with no size, gap or overlap)
• At one time, you can define various time segmentations and frame divisions. For example, notes, structural parts, bars, beats, and different frame sizes.
• Each segmentation or frame division of this application has its own set of attributes to attach to their segments/frames.
• Auralization for the segmentations include auralization for the low-level descriptor (magnitude to frequency); Instant views such as tone-network for PCP like display and separation of the Keys for major and minor chords connection; and Included Extractors such as CLAM based low-level features extractor and QMUL chord extraction.

Relevant reading: Open Labs SoundSlate – Detailed Overview

How to Install this Tool

In Windows, we provide a binary installer that includes all the needed libraries (including Qt4) and ready-to-use sample data.

At present, we are not providing binaries for Linux and Mac OSX (though we are planning to do in short).
You can download the Source tarballs from the web and you can also find the complete build instructions in the INSTALL file.

Applications of The CLAM Music Annotator

The applications of The CLAM Music Annotator has been developed within the CLAM framework and these are:

1. Loading a Project: Once the program gets started, the first thing that the user needs to do is to upload the project file. This project file has a pointer to the Song List and the Schema files. Once it gets uploaded the GUI is reconfigured and the list of songs and related descriptions are available.

The user can also start a project from scratch. In this case, the Scheme and Song List files must be loaded by hand from the Project menu.

Viewing Song Properties: Once a song is selected from the Song List on the upper left, the audio file and the descriptors are loaded. After this loading process finishes the waveform including segmentation marks is available on the upper-right, the low-level descriptors are shown on the lower-right, and the high-level descriptors are on the lower-left. The user can listen to the sound file and start the edition process. All Low-level descriptors and segmentation outlook are contemporized in the position of the cursor, respect zoom, and horizontal scroll. That characteristic makes simple to take segmentation editing decisions considering low-level features values.

Read also: Sennheiser PXC 450 Headphones

2. Editing Low-level Descriptors: Low-level descriptors are characterized by connected points at an equal distance that you can pull to change its Y value. Every connected point shows the value of the descriptor in each frame. As accurate edition may be tough, some suitable edition modes are available such as trim and draw.

3. Editing High-level Descriptors: The edition of a high-level description adapts to the “type” of the descriptor as defined in the project’s schema. Regular strings use a simple text box widget where the user can enter free text.

4. Editing Segmentation Marks: In the upper-right portion, you may view or edit Segmentation marks in the waveform. You can move, delete (by pressing the Delete key) and insert (by keeping down the Insert key) the segmentation marks.

5. Auralizing annotations: Sometimes a visual representation is not as meaningful as aural feedback could be. The CLAM Annotator provides auralization of descriptors. That means mapping annotation data to synthesizer controls so that we can listen to the synthesized sound synchronized to the actual waveform. Currently, we support segmentation marks auralization and floating-point low-level descriptors auralization. The auralization of the Segmentation marks includes listening of an amazing sound at every starting point of the segment. The auralization of the Floating-point low-level descriptors takes place by regulating the volume or the tone of a sound using descriptor values. Although auralization of low-level descriptors was intended for pitch related features, we found that this kind of aural feedback being also meaningful for other descriptors.

Related post: Digidesign Mbox 2 Micro USB Audio Interface


The CLAM Music Annotator is a tool that can be used to revise and fine-tune the result of automatic description extraction algorithms. This tool will be made available as Free Software in the next release of the CLAM framework. Although we believe that in its current state the application is already useful and valuable, the future includes the possibility of dynamically loading automatic extraction algorithms. With this addition, the CLAM Annotator will become a complete and flexible framework for audio description and annotation.