Realtime Chord Recognition of Musical Sound:
a System Using Common Lisp Music
Takuya FUJISHIMA *
CCRMA, Stanford University
Stanford CA 94305, USA
This paper describes a realtime software system which recognizes musical chords from input sound
signals. I designed an algorithm and implemented it in Common Lisp Music/Realtime environment.
The system runs on Silicon Graphics workstations and on the Intel PC platform. Experiments verified
that the system succeeded in correctly identifying chords even on orchestral sounds.
Keywords: music, sound, chord, machine, recognition, realtime, numerical, AI
Musical chord recognition is a process of identifying specific pitch simultaneities that combine to
produce the functional harmonic palette of western music1. Traditionally, it is approached as a
polyphonic transcription task to identify individual
notes  (2] , which is then followed by a symbolic inference stage to determine the chord (Fig.1)
. This approach suffers from recognition errors at
the first stage. The errors result from noises, and
from overlapping harmonics of notes in the spectrum of the input audio signal. These inevitable
errors makes the chord recognition task diffcult.
Polyphonic Transcription Symbolic Inference
(signal to notes)\ (rule-based reasoning)
Input Signal Individual Notes Chords
robustness than note names do.
Based on the framework of SAM, I designed a
chord recognition algorithm, which is described in
the following section.
The overview of my chord recognition algorithm is
shown in Fig. 2.
Figure 1: Traditional Approach
Recently, Leman proposed an alternative approach . His "Simple Auditory Model" (SAM
for short) avoids the unreliable note identification
process by adopting numerical representation and
manipulation of information throughout the process, to realize a robust recognition system. The
key of SAM is the use of an intensity map of twelve
semitone pitch classes. Derived from a spectrum
through straightforward numerical processing, the
map preserves more information and achieves more
*Currently at YAMAHA Corp. Electronic Musical Instruments Division, 10-1 Nakazawa, Hamamatsu 430 Japan
'Human listeners perceive chords even in a single melodic
line. This aspect is beyond the scope or this research.
Figure 2: Chord Recognition Algorithm Overview
This algorithm first transforms an input sound
to a Discrete Fourier Transform (DFT) spectrum,
from which a Pitch Class Profile (PCP) is derived.
Then it does pattern matching on the PCP to
determine the chord type and root. Two major
heuristics are introduced to improve the overall performance. Details follow.
2.1 DFT Spectrum
First, this algorithm transforms a fragment of the
input sound stream to a DFT spectrum. Let f,
be the sampling frequency and xz(n) be a fragment
- 464 -
ICMC Proceedings 1999