Most jazz pieces are essentially song structures in which musicians play sequences of chords called chord progressions. Certain chord progressions are popular because the transition from chord to chord is musically pleasing, and because the progression permits moving from one musical key to another, permitting flexibility and providing musical variety.
One particularly important chord progression is the II-V-I., in the key of C major this progression starts by first playing the D minor seventh chord (Dm7), then by playing the G dominant seventh chord (G7), and ends by playing the C major seventh chord (Cmaj7). In the key of C this is a II-V-I progression because D, the root note of Dm7, is the second note of the C major scale; G, the root note of G7, is the fifth note of the C major scale; and C, the root note of Cmaj7, is the first note of the C major scale.
The II-V-I has evolved into more complex chord progressions. For instance, John Coltrane introduced the chord progression now known as the Coltrane changes on his seminal 1960 album Giant Steps, where it is central to two pieces, “Giant Steps” and “Countdown”. The Coltrane changes are an elaboration of the II-V-I; it includes the three chords of this older progression, but adds four more chords. Two of these are lead-in chords to the V, and the other two are lead-in chords to the I. The table below provides the Coltrane changes for the key of C major.
Last summer we were interested in training artificial neural networks to generate chord progressions: when presented a chord, a network would generate the next chord in the progression. To do this for the Coltrane changes, we had to determine the chord progression for any major key. However, this is not easy: accounts of the Coltrane changes on the web are opaque.
In a previous blog entry, I described some ‘strange circles’ – arrangements of notes in a circle, so that adjacent notes in the circle are a constant musical interval apart – that we had extracted from other musical networks that we trained. For our Coltrane project, we found that combining these circles into more complex diagrams provided a map that let us build our training set.
In particular, all of the tonic notes of the Coltrane changes are represented in a ‘rose diagram’ that attaches a ‘strange circle’ of major thirds to every note around the more traditional circle of fifths. Here is the complete ‘rose diagram’:
The inner circle provides the tonic notes for the II-V-I skeleton of this progression, and the outer circles provide the tonic notes for the lead in chords. To use this map, you start with a chord from the inner circle, you then play four chords related to the outer circle, and you end with two chords from the inner circle. The figure below shows how the Coltrane changes falls out of the ‘rose diagram’ for the key of C major. In this figure I extended the lines ending in G# and B so that the chords are mapped in the proper order. The dotted arrows take you chord by chord through the changes; compare their order with the table above. If you follow this pattern starting at any other inside note, then you will generate the Coltrane changes for some other key.
We found that a very simple network – one with no hidden units – could learn the Coltrane progression if we presented inverted chords. Inverted chords are the same chords (i.e. the same set of notes), but the notes are arranged in a different order. When we examined the internal structure of the trained network, we found another easily mapped regularity.
The connection weights revealed that the network had learned that a key aspect of the Coltrane changes involved the relationships between the different base notes used in the seven (inverted) chords for the changes. These relationships only involve four different musical intervals: unison, the major second, the minor 7th, and the major 7th. A unique connection weight defined each of these intervals. These relationships could be plotted as a map of movements about the vertices of a triangle, where each vertex is the lowest note of an inverted chord.
One such map is shown below. It starts with a chord that has F as its lowest note, then moves to play four different chords, each having Eb as a low note. It returns to F, and then ends with a chord whose lowest note is E:
Interestingly, to start the same sequence in the next key the first note is the Eb; the last arrow in this map is a pointer to the first chord in the next key. If you fill out the remaining triangles then another elegant map of the Coltrane changes is produced:
The interesting thing about this final map is that its outer wheel of notes, and its inner wheel of notes, are two other ‘strange circles’: the two circles of major seconds. In short, it seems that whenever we train networks on tasks that involve musical chords, we find the networks represent chord regularities with these strange circles.