REAL-TIME CHORD RECOGNITION FOR LIVE PERFORMANCE
📜 Abstract
This paper describes work aimed at creating an efficient, real-time, robust and high performance chord recognition system for use on a single instrument in a live performance context. An improved chroma calculation method is combined with a classification technique based on masking out expected note positions in the chromagram and minimising the residual energy. We demonstrate that our approach can be used to classify a wide range of chords, in real-time, on a frame by frame basis. We present these analysis techniques as externals for Max/MSP.
✨ Summary
Summary
The paper presents a frame-based chord-recognition system designed for real-time analysis of a single polyphonic instrument in live performance. It targets 108 chord labels spanning major, minor, diminished, augmented, suspended, major-seventh, minor-seventh, and dominant-seventh qualities.
The system first computes a 12-bin chromagram from a windowed short-time Fourier transform. Instead of accumulating all spectral energy within fixed frequency bands, it searches for the maximum spectral peak near the expected locations of the first two harmonics. This reduces noise sensitivity and permits limited inharmonicity. The analysis focuses on two octaves, from C3 to C5, using an 11,025 Hz sampling rate and 8,192-sample frames.
For classification, each candidate chord is represented by a binary note mask. The method removes the masked note positions and measures the normalized residual energy in the remaining chroma bins; the chord with the smallest residual is selected. Additional heuristics address chromagram ambiguities among augmented and suspended chords and compensate for overtone-related “ghost notes,” particularly fifths caused by third harmonics.
Evaluation used 1,440 randomly selected frames from 180 guitar chords played on two guitars. The system achieved 94.0% root-note accuracy, 93.1% root-plus-quality accuracy, and 92.7% accuracy when additional chord intervals were also required. Performance was strongest for diminished, dominant-seventh, major-seventh, and major/minor chords, and weaker for augmented and suspended chords because some have identical chromagram representations. The proposed classifier exceeded nearest-neighbour classification by 1.2 percentage points and weighted-sum classification by 20.1 percentage points at the most detailed evaluation level.
The paper’s documented influence is primarily practical and methodological. The authors later released a C++ implementation of the chromagram and chord-detection algorithm, explicitly identifying it as an implementation of this paper’s approach. That implementation has subsequently been reused or ported in community software, including TypeScript/browser and Rust projects for real-time chord detection. (github.com) The paper is also cited in later surveys and research on automatic chord recognition, including work covering the field’s development over two decades and later guitar-chord recognition systems. (c4dm.eecs.qmul.ac.uk)
The authors identify whole-performance evaluation and the possible use of temporal models such as hidden Markov models as directions for subsequent work. The evidence located supports continued citation and software reuse, but does not establish broad commercial adoption attributable specifically to this paper. (openresearch.surrey.ac.uk)