Bodhidharma is a software system for automatically classifying musical MIDI recordings based on pre-defined taxonomies. Although the emphasis is put on genre classification in the documentation for the software, content-based classification of essentially any type can be performed simply by changing the taxonomy and model training recordings. Recordings could be classified by composer, performer, geographical area, mood, or any other criteria that the user desires.

The Bodhidharma software allows the user to custom design his or her hierarchal taxonomy, choose the features on which to base classification, control the meta-data associated with recordings, extract features from MIDI recordings, train customized classifiers on model recordings and classify unknown recordings with trained classifiers. All of this can be done using a relatively easy to use graphical user interface with full saving functionality.

This software includes an extensive library of high-level musical features as well as a novel hybrid classification system that makes use of hierarchical, flat and round robin classification. Both k-nearest neighbour and neural network-based classifiers are used, and feature selection and weighting are performed using genetic algorithms.

Bodhidharma won the 2005 MIREX Symbolic Genre Classification Contest in all categories.

The following documentation is available for this software:

A number of works have been published on this software, the most extensive being my master's thesis.

Bodhidharma is written in Java, which means that it can be run on any system that has the Java Runtime Environment installed on it. The Java Runtime Environment can be downloaded for free from the web site.

Click on the link below to download a zip file containing all of the Bodhidharma files, including the documentation listed above. The java source files are included for those interested in seeing how the software was implemented. Although no MIDI source files can be included, for copyright reasons, two sample projects with features extracted from MIDI recordings are present in the download.


Click on the link below to download a zip file containing additional Bodhidharma projects that include pre-trained classifiers. Users can install these projects into the Bodhidharma package and use them to test how well the pre-trained system classifies their own test MIDI recordings.


-top of page-