----------------------------------------------------------------- 2008.04.24 ~ Progression Strength ~ The harmonic strength of a progression between two chords can be measured by the sum of the Tenney-weighted harmonic distances between pairs of changing tones in the progression, arranged so that this sum is minimal. For a progression of the form chordA->chordB the "changing tones" are any pitches not occurring in both chords. They are placed into pairs of the form pitchA<->pitchB where pitchA occurs in chordA but not chordB, and pitchB occurs in chordB but not chordA. Any changing tones that cannot be paired this way are discarded (e.g. the progression C7->CM has zero strength, since Bb is discarded and there are no other changing tones). The Tenney-weighted harmonic distance between a pair of pitches in just intonation is log2(TenneyHeight(pitchA\pitchB)) Eq.1 where the \ operator is understood to be division such that the greater of the operands is the numerator, and TenneyHeight(p/q) = p*q for a ratio p/q in lowest terms. Tempered pitches are identified by their approximations to just intonation. The strength of a progression is assumed to be uniformly weakened according to the error of the temperament. In the example CM->Cmin, the changing pitches are E<->Eb, which are approximately 5/4<->6/5 in just intonation. 5/4 \ 6/5 = 25/24 log2(25*24) = 9.23 Compare this to CM->Amin, where log2(10*9) = 6.49. If there is more than one pair of changing pitches, we take the sum of their distances. If there is more than one way to pair the changing pitches, we test all pairings and use the one giving the least sum. To determine whether CM->GM or CM->EM is the stronger progression, we have C<->D + E<->B = 8.75 for CM->GM and G<->B + C<->G# = 12.97 for CM->EM This method should be completely general with respect to harmonic limit (e.g. 7-limit, 11-limit, etc.) and would even claim to measure the strength of progressions between chords of different sizes (triads, tetrads, etc.) on the same scale. ~ Voice Leading ~ If we replace Eq.1 in the above with |log2(pitchA)-log2(pitchB)| * 1200 Eq.2 we obtain instead the 'voice leading distance' of a progression. The units are cents, and pitchA and pitchB no longer have to be identified in just intonation. As before, if there is more than one way to pair the changing pitches, we find the pairing resulting in the minimal sum. ~ Regime for Generating Chord Progressions ~ 1. Find all p-limit n-ads. 2. Find all pairs (2-combinations) of the chords from step 1. 3. Calculate the progression strength and voice leading distance for each of the pairs from step 2. 4. Sort the chord pairs from step 2 by increasing voice leading distance, and keep only the top m pairs. 5. Divide the pairs from step 4 into two groups of equal size around their median progression strength. 6. Construct chord progressions by joining progression pairs to form longer sequences, e.g. C->G + G->F = C->G->F. 7. Step 6 can be completed using only chord pairs from the high progression strength group, or only from the low progression strength group, or by alternating between the two groups, etc. -Carl