Tempogram Toolbox

The Tempogram Toolbox has been developed by Peter Grosche and Meinard Müller. It contains MATLAB implementations for extracting various types of recently proposed tempo and pulse related audio representations [1, 2, 3]. These representations are particularly designed to reveal useful information even for music with weak note onset information and changing tempo. The MATLAB implementations provided on this website are published under the terms of the General Public License (GPL).

If you publish results obtained using these implementations, please cite [1]. For technical details on the features please cite [1], [2], [3].

Overview

The extraction of local tempo and pulse information from audio recordings constitutes a challenging task, in particular for music with significant tempo variations. Furthermore, the existence of various pulse levels such as measure, tactus, and tatum often makes the determination of absolute tempo problematic.

The Tempogram Toolbox contains MATLAB implementations for extracting various types of tempo and pulse-related audio representations. For an introduction, see [5].

  • Novelty curve: Given an audio recording, we first derive a novelty curve. The peaks of this curve indicate note onset candidates. The variant provided by the Tempogram Toolbox is capable of capturing even soft note onsets, as typically occuring for string instruments.

  • PLP curve: Given a (possibly very noisy) novelty curve the toolbox allows for deriving a predominant local pulse (PLP) curve as introduced in [1]. This curve can be regarded as a local periodicity enhancement of the original novelty curve explaining the local periodic nature of the note onsets and provides musically meaningful local pulse information even in the case of complex music. The PLP concept yields a powerful mid-level representation that can be applied as a flexible tool for various music analysis tasks, such as onset detection, tempo estimation, or beat tracking.

  • Tempograms: As second main part, the Tempogram Toolbox facilitates various tempogram representations that reveal local tempo characteristics even for expressive music exhibiting tempo-changes. To obtain such a representation, a novelty curve is analyzed with respect to local periodic patterns. Here, the toolbox provides Fourier-based methods as well as autocorrelation-based methods. Autocorrelation-based tempograms ideally complement Fourier-based tempograms as they indicate subharmonics while suppressing harmonics. For both concepts, representations as time/tempo as well as time/time-lag tempogram are available. Furthermore, resampling and interpolation functions allow for switching between tempo and time-lag axes as desired.

  • Cyclic tempograms: The third main part of our toolbox provides functionality for deriving cyclic tempograms from the tempogram representations as introduced in [2]. Here, the idea is to form tempo equivalence classes by identifying tempi that differ by a power of two. The cyclic tempo features constitute a robust mid-level representation revealing local tempo characteristics of music signals while being invariant to changes in the pulse level. Being the tempo-based counterpart of the chromagrams, cyclic tempograms are suitable for music analysis and retrieval tasks.

MATLAB Code

The MATLAB implementations provided on this website are published under the terms of the General Public License (GPL), version 2 or later. If you publish results obtained using these implementations, please cite the references below.

Download Tempogram Toolbox (Version 1.0. Last update: 2011-11-02): [zip]

The toolbox functionality is illustrated by the following test scripts:

MATLAB implementations for computing various harmonically related feature representations are provided by the chromagram toolbox [6].

Important Notes:

  • For the Tempogram Toolbox the MATLAB Signal Processing Toolbox is required.
  • The implementations have been tested using MATLAB 2007b or newer.
  • In case of questions/suggestions, please contact Peter Grosche or Meinard Müller.

References

  1. Peter Grosche and Meinard Müller
    Extracting Predominant Local Pulse Information from Music Recordings
    IEEE Transactions on Audio, Speech, and Language Processing, 19(6): 1688—1701, 2011. Details
    @article{GroscheM11_PLP_TASLP,
    author = {Peter Grosche and Meinard M{\"u}ller},
    journal = {IEEE Transactions on Audio, Speech, and Language Processing},
    title = {Extracting Predominant Local Pulse Information from Music Recordings},
    year={2011},
    volume={19},
    number={6},
    pages={1688--1701},
    url-details = {http://ieeexplore.ieee.org/xpls/abs_all.jsp?arnumber=5654580}
    }
  2. Peter Grosche, Meinard Müller and Frank Kurth
    Cyclic Tempogram — A Mid-level Tempo Representation For Music Signals
    In Proceedings of IEEE International Conference on Acoustics, Speech, and Signal Processing (ICASSP), 2010. PDF
    @inproceedings{GroscheMK10_TempogramCyclic_ICASSP,
    author = {Peter Grosche and Meinard M{\"u}ller and Frank Kurth},
    title = {Cyclic Tempogram -- A Mid-level Tempo Representation For Music Signals},
    booktitle = {Proceedings of IEEE International Conference on Acoustics, Speech, and Signal Processing ({ICASSP})},
    address = {Dallas, Texas, USA},
    month = mar,
    year = {2010},
    pages = {},
    url-pdf = {2010_GroscheMuellerKurth_TempogramCyclic_ICASSP.pdf}
    }
  3. Peter Grosche and Meinard Müller
    Computing predominant local periodicity information in music recordings
    In Proceedings of the IEEE Workshop on Applications of Signal Processing to Audio and Acoustics (WASPAA): 33—36, 2009. PDF
    @inproceedings{GroscheM09_PLP_WASPAA,
    author    = {Peter Grosche and Meinard M{\"u}ller},
    title     = {Computing predominant local periodicity information in music recordings},
    booktitle = {Proceedings of the IEEE Workshop on Applications of Signal Processing to Audio and Acoustics ({WASPAA})},
    address   = {New Paltz, New York, USA},
    year      = {2009},
    month     = oct,
    pages     = {33--36},
    url-pdf={2009_GroscheMueller_PredominantLocalPeriodicy_WASPAA.pdf}
    }
  4. Peter Grosche, Meinard Müller and Craig Stuart Sapp
    What makes beat tracking difficult? A case study on Chopin Mazurkas
    In Proceedings of the 11th International Conference on Music Information Retrieval (ISMIR): 649—654, 2010. PDF
    @inproceedings{GroscheMS10_BeatTrackingErrors_ISMIR,
    author = {Peter Grosche and Meinard M{\"u}ller and Craig Stuart Sapp},
    title = {What makes beat tracking difficult? {A} case study on {C}hopin {M}azurkas},
    booktitle = {Proceedings of the 11th International Conference on Music Information Retrieval ({ISMIR})},
    address = {Utrecht, Netherlands},
    year = {2010},
    pages = {649--654},
    url-pdf = {2010_GroscheMuellerSapp_BeatError_ISMIR.pdf}
    }
  5. Peter Grosche and Meinard Müller
    Tempogram Toolbox: MATLAB tempo and pulse analysis of music recordings
    In 12th International Conference on Music Information Retrieval (ISMIR, late-breaking contribution), 2011. PDF
    @inproceedings{GroscheM11_TempogramToolbox_ISMIR-lateBreaking,
    author = {Peter Grosche and Meinard M{\"u}ller},
    title = {{T}empogram {T}oolbox: {MATLAB} tempo and pulse analysis of music recordings},
    booktitle = {12th International Conference on Music Information Retrieval ({ISMIR}, late-breaking contribution)},
    address = {Miami, USA},
    year = {2011},
    url-pdf = {2011_GroscheMueller_TempogramToolbox_ISMIR-LateBreaking.pdf}
    }
  6. Meinard Müller and Sebastian Ewert
    Chroma Toolbox: MATLAB implementations for extracting variants of chroma-based audio features
    In Proceedings of the 12th International Conference on Music Information Retrieval (ISMIR), 2011. PDF
    @inproceedings{MuellerEwert11_ChromaToolbox_ISMIR,
    author = {Meinard M{\"u}ller and Sebastian Ewert},
    title = {{C}hroma {T}oolbox: {MATLAB} implementations for extracting variants of chroma-based audio features},
    booktitle = {Proceedings of the 12th International Conference on Music Information Retrieval ({ISMIR})},
    address = {Miami, USA},
    year = {2011},
    url-pdf = {2011_MuellerEwert_ChromaToolbox_ISMIR.pdf}
    }