MIDI Toolbox

Midi Toolbox Logo (Medium) The MIDI Toolbox is a compilation of functions for analyzing and visualizing MIDI files in the Matlab computing environment. Besides simple manipulation and filtering functions, the toolbox contains cognitively inspired analytic techniques that are suitable for context-dependent musical analysis that deal with such topics as melodic contour, similarity, key-finding, meter-finding and segmentation.

The Toolbox is available free of charge under the GNU General Public License. 

» Authors

Petri Toiviainen (Professor) is employed at the Department of Music of the University of Jyväskylä, Finland and member of the Finnish Centre for Interdisciplinary Music Research, which investigates various issues relating to music cognition. Tuomas Eerola (Professor) is currently employed at Durham University, UK. If you have any comments or problems to report, please contact the authors (PT:firstname.lastname at jyu.fi, TE:firstname.lastname at durham.ac.uk).

» Download

MIDI Toolbox is available from Github: https://github.com/miditoolbox/ 

» Documentation

The documentation provides a description of the Toolbox (Chapter 1), installation and system requirements (Chapter 2). Basic issues are explained in Chapter 3. Chapter 4 demonstrates the Toolbox functions using various examples and Chapter 5 constitutes the function reference section.

To cite the MIDI Toolbox, use the following reference to the User's Manual (downloadable from this page, see below):

  • APA entry:
    Eerola, T. & Toiviainen, P. (2004). MIDI Toolbox: MATLAB Tools for Music Research. University of Jyväskylä: Kopijyvä, Jyväskylä, Finland. 
  • Bibtex entry:
       Address = {Jyv{\"a}skyl{\"a}, Finland},
       Author = {Eerola, Tuomas and Toiviainen, Petri},
       Publisher = {University of Jyv{\"a}skyl{\"a}},
       Title = {MIDI Toolbox: MATLAB Tools for Music Research},
       Url = {www.jyu.fi/musica/miditoolbox/},
       Year = {2004}}

» Installation

Unpack the MIDI Toolbox file package you have downloaded. This will create a directory called miditoolbox. 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. 

» Compatibility

The toolbox should be compatible with the lastest operating systems (Mac, Win, Linux) and Matlab versions.

» Extensions

Matching Performance to Notation

Author: Ed Large, Associate Professor of Complex Systems and Brain Sciences, Florida Atlantic University

Sometimes an analysis of music performance requires matching a performance to its corresponding notation, or score. This extension provides a function, dynamicMatch.m to perform this task. The matcher utilizes dynamic programming techniques, runs in polynomial time and is fully described in (Large, 1993). The algorithm for this task was developed in the context of a study of music production errors (Palmer & van de Sande, 1993). The dynamic programming algorithm finds an optimal match between the two sequences, given a scoring function that is hard coded into the program. Examples and full documentation is also provided.

Download (includes documentation and examples): matchingPerformancetoNotation.zip