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].
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.
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:
test_TempogramToolbox.m
Demo of most of the functionality.
test_compute_tempogram_fourier.m
Computes a Fourier-based tempogram.
test_compute_tempogram_autocorrelation.m
Computes an autocorrelation-based tempogram.
test_compute_PLPcurve.m
Computes a PLP curve.
test_compute_cyclicTempogram_fourier.m
Computes a cyclic tempogram (Fourier-based).
test_compute_cyclicTempogram_autocorrelation.m
Computes a cyclic tempogram (autocorrelation-based).
MATLAB implementations for computing various harmonically related feature representations are provided by the chromagram toolbox [6].
Important Notes:
@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} }
@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} }
@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} }
@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} }
@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} }
@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} }