Music Annotator

From Clam
Jump to: navigation, search

CLAM Music Annotator


Splash screen

The CLAM Music Annotator is a GPL tool that can be used to visualize, check and modify music information extracted from audio: low level features, note segmentation, chords, structure... The tool is intended to be useful for the music information retrieval research whenever you need to:

  • Supervise and correct the results of automated audio feature extraction algorithms.
  • Generate manually edited annotations of audio as training examples or ground truth for those algorithms.


The keyspace and tonnetz views to visualize the automatic chord extraction

The CLAM Annotator is not tied to a fixed description scheme (the set of attributes). You can define the working attribute set by providing an XML description schema definition. Sample description schemes and an extraction programs are provided with the Annotator but you could implement your own one with different algorithms and attributes. Also tools are provided to select and join attributes from the output of several description sources.

Editing sized segments

Other key features are:

  • Attribute types:
    • Free text
    • Enumeration
    • Bounded float
    • Bounded integer
    • Float array
    • Frame Division (Equidistant division)
    • Segmentations (Sizeless, Gapless, Overlapless or Free)
    • ... more to come
  • Several time segmentations and frame divisions can be defined at once (notes, structural parts, bars, beats, different frame sizes...).
  • Each segmentation or frame division have its own set of attributes to attach to their segments/frames.
  • Auralization for the segmentations (click on the beggining)
  • Auralization for the low-level descriptor (magnitude to freq)
  • Instant views:
    • Tonnetz for PCP like (tones correlation) display
    • Key Space for major and minor chords correlation
    • ... more to come
  • Included Extractors
    • CLAM based low level features extractor
    • QMUL chord extraction
    • (see #Included Extractors for details)

Screenshots and videos

See the Annotator screenshots gallery.

See also the Music Annotator videos


Check out the last release at the CLAM download page.

You may be interested to read those First steps with annotator. It explains how to get the chord extraction working. You can also read the Annotator Tutorial

Read the Music Annotator Changelog for changes on the new release.

Included Extractors

CLAM Music Annotator architecture is open to add extractors and data sources. Just by providing an executable following the proper command line and output conventions. Following command line and output conventions is not a major issue, we have successfully used python to wrap existing extractors that didn't conform.

CLAM Music Annotator comes with several extractors and data sources:


The ClamExtractorExample is a simple example of extractor using CLAM. It generates three kind of descriptors:

  • Low level spectral descriptors using CLAM
  • ID3 descriptors
  • Random segments (yes, they are random, just to test the Music Annotator)
  • Random high level descriptors (yes, those are also random)


The chord extractor extracts segments labeled with chords. It uses Christopher Harte algorithm with some minor variations. It has been developed as a collaboration between the Queen Mary University of London and the Universitat Pompeu Fabra.

Collective Annotation, the BOCA client

Checking pending annotations on the BOCA website
Taking the files related to a BOCA task and uploading them back using the Simac Services

BOCA, the Backbone Of Collective Annotations is a web application that centralizes collective annotation campaigns. Hand annotation is a hard task for researchers, but, sharing annotations means, as for software, that you'll get more than you are giving.

BocaClient is a program that takes the task files BOCA generates and builds a Music Annotator project by doing queries to the Simac Web Services. After saving the project, the BocaClient uploads the changes back.

Helper scripts

The source code tarball also includes some python scripts to perform usefull tasks as:

  • Merging pools and schemas from several sources
  • Filtering attributes from pools
  • Mapping attributes names and attribute scopes names
  • Converting WaveSurfer lab files to and from Annotator's descriptors pools

Related Publications

  • Amatriain, X. Massaguer, J. Garcia, D. Mosquera, I. 2005. The CLAM Annotator: A Cross-platform Audio Descriptors Editing Tool
Poster presented at 6th International Conference on Music Information Retrieval; London, UK
  • Herrera, P. Celma, O. Massaguer, J. Cano, P. Gómez, E. Gouyon, F. Koppenberger, M. Garcia, D. G. Mahedero, J. Wack, N. 2005. Mucosa: a music content semantic annotator
Proceedings of 6th International Conference on Music Information Retrieval; London, UK
  • Gómez, E. Bonada, J. 2005. Tonality visualization of polyphonic audio
Proceedings of International Computer Music Conference 2005; Barcelona

Navigation menu