  In jazz, a contrafact is a new melody composed over an existing, but often
reharmonized chord progression. Because reharmonization can introduce a wide
range of variations, detecting contrafacts is a challenging task. This paper
develops a novel vector-space model to represent chord progressions, and uses
it for contrafact detection. The process applies principles from music theory
to reduce the dimensionality of chord space, determine a common key signature
representation, and compute a chordal co-occurrence matrix. The rows of the
matrix form a basis for the vector space in which chord progressions are
represented as piecewise linear functions, and harmonic similarity is evaluated
by computing the membrane area, a novel distance metric. To illustrate our
method's effectiveness, we apply it to the Impro-Visor corpus of 2,612 chord
progressions, and present examples demonstrating its ability to account for
reharmonizations and find contrafacts.
