MIRtoolbox offers an integrated set of functions written in Matlab, dedicated to the extraction from audio files of musical features such as tonality, rhythm, structures, etc. The objective is to offer an overview of computational approaches in the area of Music Information Retrieval. The design is based on a modular framework: the different algorithms are decomposed into stages, formalized using a minimal set of elementary mechanisms. These building blocks form the basic vocabulary of the toolbox, which can then be freely articulated in new original ways. These elementary mechanisms integrates all the different variants proposed by alternative approaches - including new strategies we have developed -, that users can select and parametrize. This synthetic digest of feature extraction tools enables a capitalization of the originality offered by all the alternative strategies. Additionally to the basic computational processes, the toolbox also includes higher-level musical feature extraction tools, whose alternative strategies, and their multiple combinations, can be selected by the user.

The choice of an object-oriented design allows a large flexibility with respect to the syntax: the tools are combined in order to form a sets of methods that correspond to basic processes (spectrum, autocorrelation, frame decomposition, etc.) and musical features. These methods can adapt to a large area of objects as input. For instance, the autocorrelation method will behave differently with audio signal or envelope, and can adapt to frame decompositions.

The toolbox is conceived in the context of the Brain Tuning project financed by the European Union (FP6-NEST). One main objective is to investigate the relation between musical features and music-induced emotion and the associated neural activity.

» MIRtoolbox public release 1.0

This distribution actually includes four different toolboxes:

  • the MIRtoolbox itself, version 1.0,
  • the Auditory toolbox, version 2, by Malcolm Slaney,
  • the Netlab toolbox, version 3.3, by Ian Nabney,
  • the SOM toolbox, version 2.0, by Esa Alhoniemi, Johan Himberg, Jukka Parviainen and Juha Vesanto.

Besides, MIRtoolbox requires Matlab's Signal Processing toolbox.

» Authors

Olivier Lartillot (Post-doc researcher) and Petri Toiviainen (Professor) and are employed at the Department of Music of the University of Jyväskylä, Finland. Both are members of the Music Cognition Group, which investigates various issues relating to music cognition, including tonality and rhythm perception, improvisation, cross-cultural aspects of musical cognition, interactive music systems, musical data mining and computational music analysis.

The development of the toolbox has benefitted from productive collaborations with the other partners of the project, in particular Tuomas Eerola, Jose Fornari, Marco Fabiani, students of our department and participants of the SMC Summer School 2007 and of ISSSM 2007.

» Download

Go to Download Form

» Documentation

The documentation provides...

» Installation

Unpack the MIDI Toolbox file package you have downloaded. This will create a directory called miditoolbox_<operating_system>. Secondly, a version of the Matlab program needs to be installed (see www.mathworks.com). Thirdly, the Toolbox needs to be defined in the Matlab path variable. Under the File menu, select Set Path. Under the Path menu, select Add to Path. Write here the name of the directory where this toolbox has been installed. Then click OK. Finally, under the File menu, select Save Path, and then Exit.

» Compatibility

  • Windows (98, 2000, XP): The MIDI Toolbox version 1.0.1 is compatible with Matlab 5.3. to Matlab 7.4
  • Macintosh (OS X): The MIDI Toolbox version 1.0.1 is compatible with Matlab 6.5 and 7.4 for Macintosh. Intel version available.
  • Linux: Currently not tested but should be compatible.

» Extensions

To be added

» FAQ - Frequently Asked Questions

To be added


There is no version for Octave, but if you need to compile the mex files, you can download the mf2t and t2mf C source and mex files. If you are developing a version for Octave, please let us know.