Bodhidharma is a general-purpose 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 almost 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.

Authourship and Licensing

This software was produced as part of of Cory McKay's master's thesis at McGill University. All software design, development and testing was performed by Cory McKay. As the work of one person with limited time, there may be some bugs left in the software. Please contact Cory McKay at with any bug reports or questions.

This software is included in Cory McKay's 2004 thesis copyright. This software is distributed freely, with the understanding that the authour is not liable for any damages of any sort incurred through the use of the software. There is no express or implied warranty. Furthermore, the authour must be cited in any publications involving the use of the Bodhidharma system. This software is open source, and users are welcome to modify the code as they wish.

This software includes the Xerces XML parsing software developed by the Apache Software Foundation ( Their licence is available here.

Financial support was provided to the authour through a grant from the Fonds Québécois de la recherche sur la société et la culture. The advice of Ichiro Fujinaga, Cory's thesis advisor, was of great help throughout the development of this software.

Further Information

Those wishing information beyond the scope of this manual should consult the authour's master's thesis (available at or contact him at Chapter 6 of the thesis will be of particular interest to those wishing to understand how the training and classification performed by this software works.