A search for interesting canons (part 1)

Starting point

Canons in the common practice period are relatively uncommon. Apart from for example canons by Bach (BWV 1087, BWV 1097) and works by Josquin de Prez or Palestrina there seem to be few elaborate uses of canon. This post aims to be a starting point for me in exploring the nature and limits of canonic writing in conventional harmony.

Ideally one would to try every possible theme of minimal melodic quality with every possible canonic technique and select those with interesting properties. Since there are however infinite themes the problem needs to be bounded. The starting point will be Bach’s 14 canons on the ground bass of the Goldberg variations (BWV 1087).

Herein Bach wrote 14 canons that all contain the same 8 quarter note theme, usually in canon with itself and usually in double canon. Bach proceeds to show how this theme fits with its retrograde, how the inversion of the theme fits with it’s own retrograde, how the theme fits with its inversion and how the inverted theme fits with its own inversion.

Just like Bach we will just consider 8 note diatonic themes, naively there are 7⁸ (5.7 million) possible diatonic 8 note themes and we’ll hopefully find the best.


There are some isomorphisms to consider. I consider any 2 themes where one can be transformed in the other using these transformations isomorphic and so part of the same equivalence class:

Translation refers to changing the starting point of the theme and wrapping around, these are identical because we will be considering canonic rounds. Octavation refers not just to the octave in which the theme is played but to the particular octave of any note. I think in the case of most themes there is one obvious octave for each note to be in, and in other cases it is far more efficient to consider the multiple options in a much later stage so that we can for the moment encode notes without this information and keep the amount of themes at 7⁸ instead of ~88⁸.

Pruned in such a way there just 27.253 themes (actually equivalence classes) left, there are some other limitations that should be imposed:

  • At least 5 of the 7 diatonic notes should be present for sufficient harmonic interest.
  • Themes should not be their own translation because of the obvious symmetry.
  • Themes should not be their own retrogrades, for the same reason.
  • No repetition of notes, except once to allow for the same start and end note.
  • No 3 note pattern should be literally repeated.

The no repetition of notes is because this is contrapuntally very close to having a different rhythm, something that will only be tackled at a later stage. With these limitations applied there are now less than 15.000 themes left. Looking at these there are still some clearly unfit themes but I do not believe there are false negatives.

How canonic is a theme?

Next the selected themes will be sorted by how many contrapuntally valid combinations each theme has with its isomorphs. Naively one theme has ~224 isomorphs (7 transpositions * 8 rotations * 2 inversions * 2 retrogrades) barring symmetries, and you can combine any isomorph with any other isomorph making for 224² – 224 (not with themselves) combinations. Counterpoint is however just as isomorphic as themes, so theme + theme rotated by 1 is equal to inversion + inversion rotated by 1, or inversion + retrograde inversion rotated by 3, is contrapuntally equal to theme + retograde rotated by 3, which is equal to theme rotated by -3 (= 5) + retrograde if you wish. You can obviously transform any set of 2 isomorphic themes so that one of the themes is untransformed. This means that we just have to compare the theme with all its isomorphs: just 224 combinations. Additionally we don’t want to see the theme and its own transpositions, since that is just playing the same notes at different pitches. Lastly the combination of theme + theme rotated by N is the same as theme + theme rotated by 8-N, because the difference between those two is just swapping the voices. This also goes for the inversion. This leaves 175 real isomorphic combinations to check, in practice the good themes that suit themselves well in counterpoint have some hidden reflections that the human ear does not pick up on, unifying many of these positions.

The rules of counterpoint used are mostly like Fux’s but are much more permissive of the fourth as all these combinations of 2 themes will probably be combined in a larger whole and because the symmetry makes for a cleaner abstraction.


Bach’s theme (cbagefgc) is quite respectable, it looks like this when combined with all its isomorphs, of these Bach only used the ones on beat 0(same time) or beat 4(after one bar):bachcp.png

The reflections in some of the top scoring themes is obvious but the first non-trivial theme (cdedcbgb), and the result of this post is quite pleasant thematically and combines extremely well:


You can listen to it here: https://musescore.com/user/6168221/scores/1489061. It starts off just showing the combination of the 8 note theme with itself and then also shows the theme in double canon with free melodies. It also shows augmentation canons. It is very much a work in progress and requires at least another dozen canons to form a complete set.


Next it might seem obvious to consider chromatic themes. In practice however successful chromatic themes (using chromatic inversion) are all on the whole tone scale so that the inversion and retrograde inversion work. Chromatism in canons is made much easier by allowing some rhythm and doesn’t seem to work for well or meaningfully for these short equal note length themes.

For 12 tone rows applying the same isomorphism there are just 853.810 rows as opposed to 12!, 2031 of those combine with 16 of their own isomorphs, for example (a# b f# g e a g# f d d# c# c). The resulting counterpoint is obviously strange, without direct dissonants yet with false relations at every beat.

The above work is all done within a second in a single CPU core so there is much room for improvement. I just finished an algorithm that can explore the complete space of 16 note themes in a couple minutes. I will do a follow up post about its inner workings and results once I verified everything.

Themes that fit all rotations with itself (19): gefecbga, gefecdga, cgbaegbc, gedbcdga, bgdafcge, aegdfceb, eabgafge, geabcdea, cgegbdfc, gedbadea, eadgafge, cgfagbdc, agbdcegf, eadgcfge, geacadbg, gedbadga, cbdacgbc, befecdga, cabgadbc.

Themes that fit in all rotations (except 0) with its inversion (6): agfdcbag, cagceabc, agfedcae, cdedcbgb, bgdebcdc, cbegadcb.

There are no themes that fit at every rotated retrograde, or even every rotated retrograde but 1, but there are 3 themes that fit at all but 2: cdedcbgb (4,6), agfdcbag (6,7), bcdabcgc (1,2).

There are 6 themes that fit at every position in retrograde inversion: bgdafcge (16), cadecdbc (15), gedbadea (15), befecdga (14), agbdcegf (13), gefecbea (13).

2 thoughts on “A search for interesting canons (part 1)

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s