How's My Voice Leading?

This program attempts to detect common errors in traditional four-part harmony. The following rules of voice leading are checked:

Using a music notation program such as NoteFlight or Musescore, export your four-part harmony as MusicXML. Open the MusicXML file with a text editor (for example Notepad), copy the XML source, paste the XML content below, then press "Submit". Errors will be shown below.

Please note that at present, this program works only for homorhythmic homophony ... in other words, the parts must move together rhythmically. Pieces without these characteristics are unlikely to get correct results.

Paste your MusicXML here:

Want to see an example? Click here to see what errors are detected for the following:

Didn't work for you? This is a rough implementation which surely has some bugs. Send me a message and I'll investigate. Please attach your MusicXML and a description of the problem.

Inspired by Peter Edwards' Coursera course: Write Like Mozart: An Introduction to Classical Music Composition.

Source code available @ Fork me on GitHub