chorck    overview

Chorck is a program which will check a 4-part choral harmony exercise for common errors such as parallel 5th, octaves, hidden 5ths, etc. Currently chorales can be checked for eight errors:
  1. Parallel 5ths between two voices when moving to different pitch classes.
  2. Parallel Octaves between two voices when moving to different pitch classes.
  3. Contrary parallel 5ths -- when two voices move in parallel 5ths displaced by an octave.
  4. Unequal 5ths -- when the bass part and another voice move from dim 5ths to perfect 5ths or vice versa.
  5. Hidden 5ths -- when the soprano moves in similar motion with another voice and the soprano leaps to a perfect 5th with that voice.
  6. Hidden 8va -- when the soprano moves in similar motion with another voice and the soprano leaps to a perfect octave with that voice.
  7. Voice crossing -- when an inner voice goes above the soprano voice or below the bass voice.
  8. Open spacing -- when the interval between successive voices other than the bass exceeds an octave.

As an example, the following music can be input into the chorck command:

**kern     **kern      **kern      **kern
! bass     ! tenor     ! alto      ! soprano
*clefF4    *clefF4     *clefG2     *clefG2
*k[f#c#g#] *k[f#c#g#]  *k[f#c#g#]  *k[f#c#g#]
*A:        *A:         *A:         *A:
*M4/4      *M4/4       *M4/4       *M4/4
2AA        2E          2A          2c#
4E         4G#         4B          4e
4AA        4E          4c#         4c#
=2         =2          =2          =2
4GG#       4B          4B          4d
4AA        4A          4c#         4e
4D         4B          4d          4f#
4E         4B          4e          4g#
=3         =3          =3          =3
4C#        4A          4e          4a
4AA        4E          4a          4cc#
4D         4F#         4f#         4a
4E         4E          4B          4g#
=4         =4          =4          =4
1AA        1A          1c#         1a
==         ==          ==          ==
*-         *-          *-          *-

When the above data is run through the chorck command, four errors will be detected. In the example output below, blue text indicates the additional text added by the chorck command, and the bold red text indicates where the problem occurs.

**kern      **kern      **kern      **kern
! bass      ! tenor     ! alto      ! soprano
*clefF4     *clefF4     *clefG2     *clefG2
*k[f#c#g#]  *k[f#c#g#]  *k[f#c#g#]  *k[f#c#g#]
*A:         *A:         *A:         *A:
*M4/4       *M4/4       *M4/4       *M4/4
!! Warning: 6. Hidden octave between soprano and bass
2AA         2E          2A          2c#
4E          4G#         4B          4e
4AA         4E          4c#         4c#
=2          =2          =2          =2
4GG#        4B          4B          4d
!! Warning: 1. Parallel 5th between tenor and soprano
4AA         4A          4c#         4e
!! Warning: 2. Parallel octave between bass and alto
4D          4B          4d          4f#
4E          4B          4e          4g#
=3          =3          =3          =3
4C#         4A          4e          4a
!! Warning: 8. Open spacing between alto and tenor
4AA         4E          4a          4cc#
4D          4F#         4f#         4a
4E          4E          4B          4g#
=4          =4          =4          =4
1AA         1A          1c#         1a
==          ==          ==          ==
*-          *-          *-          *-











craig@ccrma.stanford.edu