README.txt for dpwechordrecog-20080825

Dan Ellis dpwe@ee.columbia.edu 2008-08-25

This is a system for chord recognition according to the "Trained system" 
specification from the MIREX 2008 Audio Chord Recognition task, 
http://www.music-ir.org/mirex/2008/index.php/Audio_Chord_Detection

It consists of two main functions that can be run from the Matlab 
command prompt:

>> extractFeaturesAndTrain "/path/to/trainFileList.txt" "/path/to/scratchDir"

.. will read a list of WAV files from the trainFileList and use them to 
train chord models which are stored in scratchDir.  The labels associated 
with each wav file are in a file in the same directory with .txt appended 
(e.g. foo.wav.txt).

Then,

>> doChordID "/path/to/testFileList.txt" "/path/to/scratchDir" "/path/to/resultsDir"

will perform chord recognition on each of the audio files listed in 
testFileList.txt, using models read from scratchDir, and writing the results
into resultsDir/<filename.wav>.txt .

Both the training labels and the classifier output files are in the format

<start_time_in_sec> <label>
<start_time_in_sec> <label>
....

where the label is an integer in the range 0 to 24.  0 to 11 represent 
major chords C, C#, ... B; 12 to 23 represent minor chords similarly, 
and 24 is the "no chord" symbol.  Of course, the precise identity of 
these chords depends on the labels in the training data, but the transposition
relationships between 0..11 and 12..23 are used in the code.

EXECUTION TIME

Both routines take between 30s and 60s per file (training files for 
extractFeaturesAndTrain, test files for doChordID) running under Matlab 7.3 
(R2006b) on a 2.0GHz Core Duo MacBook Pro with 2GB of memory.

 * end *
