  We use coupled hidden Markov models to automatically annotate the 371 Bach
chorales in the Riemenschneider edition, a corpus containing approximately
100,000 notes and 20,000 chords. We give three separate analyses that achieve
progressively greater accuracy at the cost of making increasingly strong
assumptions about musical syntax. Although our method makes almost no use of
human input, we are able to identify both chords and keys with an accuracy of
85% or greater when compared to an expert human analysis, resulting in
annotations accurate enough to be used for a range of music-theoretical
purposes, while also being free of subjective human judgments. Our work bears
on longstanding debates about the objective reality of the structures
postulated by standard Western harmonic theory, as well as on specific
questions about the nature of Western harmonic syntax.
