The diatonic 7th chords in the C major harmonic field are these:
The diatonic 7th chords in the parallel minor key of C minor, which are often borrowed into C major songs, are these:
The secondary dominants of the diatonic 7th chords in C major are these:
. The F7 and the Eb7 are new friends. Again here we have a gap because Dm7b5 doesn't have a secondary dominant.
Oh! I have some old notes on which triad chord sequences I like, and the ones with diminished chords don't all fit that pattern. Here's a good one: Start with a Dm or Fmaj chord, then play a Ddim chord, then a Cmaj or Am cord. That's four different good sounding chord sequences with diminished chords, and none of them are accounted for by any of my theories. Also, past-me thinks that you can put any of (Gmaj, Fmaj, Ebmaj) before (Fdim -> Cmaj) and get a good sounding sequence. That one I kind of get though; I think the Fdim is functioning like an Fm chord, which is a parallel borrowing from the C minor scale. But wait, there's more! Between C and Dm you can insert a Ebdim chord and it sounds good. This is the whole sequence that past-me wrote down: (C Eb.dim D.m G C). Try it. It's good. Another unusual sequence with triads: (A.dim G.m F C). And finally, take any of these (Ab, Ab.aug, Ab.m) and follow it with any of these (G, G.m) and resolve down to C. Or, you know, don't resolve down to C. Go somewhere else. Do this:
But wait, I found more old notes on music theory, and they're a little surprising. These guys were all grouped together in my notes:
but there's no #III.dim or #VI.dim for some reason, and I do think that's there's a reason. Then these guys were mixed in with those:
G.dim7 resolves to G7 (V.dim7 resolves to V.7)
. The roman numerals are the same on the antecedent and consequent chords, for some reason. Also-also, these were mixed in:
Ab.dim7 resolves to G7 (bVI.dim7 resolves to V.7)
, and they probably do, since normal practice lets you stick secondary dominants anywhere. But I'm still going to check them the next time I'm at a piano or in the mood to program some sounds. What about secondary dominants between stepwise chord motions that involve parallel borrowings?
These are the first insertion rules I want to check where the chords of the target context are both diatonic in C minor:
(Gm7 Abmaj7) => (Gm7 Eb7 Abmaj7)
(Fm7 Gm7) => (Fm7 D7 Gm7)
(Ebmaj7 Fm7) => (Ebmaj7 C7 Fm7)
(Dm7b5 Ebmaj7) => (Dm7b5 Bb7 Ebmaj7)
.
It's a common alteration to make the ^5 chord of a minor scale into a dominant one (Gm7 => G7 in C minor), so let's also include:
(Fm7 G7) => (Fm7 D7 G7)
.
What about insertion targets where one of the chords is diatonic in C major and one is diatonic in C minor?
...
: Other spicy chord progressions
Substituting Dm7b5 for Dm7 isn't any surprise. But why does Ab.maj7 work in place of a II.m chord? We can compare the pitch classes of the two chords:
and see that they have some notes in common (Ab and C), which is the start of an explanation, and you might also note that the Ab is a d5 above D natural - like in a tritone substitution. But it's not a tritone substitution - for that the 3rds and 7ths would be the same, at least enharmonically, and switched, and they're not.
Any analysis that says Ab.maj7 can substitute for D.m7b5 is also going to say that F.maj7 can substitute for B.m7b5 in regular C major, and that's... crazy, right? Isn't it? I think that's crazy, but I'm not sure. If I just look at my diatonic triad insertion rules, every rule with a Bdim still makes sense with an Fmaj in it's place, so, maybe it is a real/useful principle of substitution. Or my diatonic insertion rules aren't very advanced and you can only make the substitution sometimes.
Also, hey, whoa, speaking of enharmonics and shared tones: If we're not in 12-TET, do tritone substitutions stop working? Like using Db7 ([Db F Ab Cb]) for G7 ([G B D F]) is normally presented as working because the F and B/Cb are shared. But in other tuning systems, B and Cb aren't equal. Do we lose tritone substitutions in e.g. meantone temperaments? That's something I should test soon.
Okay, back to parallel borrowings. That Ab.maj7 borrowed from C minor can also bounce against the C.major7 pretty well,
(Cmaj7 Abmaj7 Cmaj7)
the same way you might do with a G or an F. And my diatonic triad insertion rules pretty much began with (C F C) and (C G C) and then inserted the other diatonic triads in the gaps between. So maybe there's a whole world of cadences to build around (Cmaj7 Abmaj7 Cmaj7)?
Another chord that can bounce against C.maj7 is Bb.maj7:
(C,maj7 Bb.maj7 C.maj7)
It sounds quite good, and I don't know why. It's not quite a parallel borrowing - the C minor scale has Bb7 instead. Maybe there's a whole world of cadences here too. Both the Abmaj7 bounce and the Bbmaj7 bounce have a bossa nova vibe to my ear. It would be great if I discovered cadences based on the two bounces that made bossa nova more explicable.
On that subject: what's the deal with all the 6 chords? Bossa nova uses lots of 6 chords, and I don't know if it uses specific 6 chords for specific functions that differ from other 6 chords and other 7 chords. If so, that's something I should figure out and add to the grammar. And if not, then all the sooner I should have programs that make nice bossa nova chord progressions. I think later this evening I'll post most of what I know about 6 chords here and see if the totality of my knowledge forms a useable theory of cadential functions for 6 chords.
Did I mention that 6 chords are secretly 13 chords? No? Well I mentioned it in the last post. Try to keep up. So anywhere that you can use a VII.m7b5 chord, you can write in a II.m6 chord and now people will think that you have jazz chops. There aren't hugely many uses of VII chords, but it's a start.
The chord F.6b5 is also basically an inversion of B.m7b5:
except that we have a Cb instead of a B. That might matter in microtonal tuning system; I'm not sure. But it doesn't matter in 12 TET. You can write in an F6b5 in place of Bm7b5, and now people will think that you know the secret art of how to use major thirds alongside diminished fifths.
What if you aren't ready to pose as a Keeper Of The Secret Art? I've got good news for you: a Dm7 chord is an inversion of an F6 chord. Now you can put 6 chords in place of the ii in a (ii V I) cadence also! Two third of your jazz songs are going to be 6 chords of one kind or another. And if you want to use a .6add9 chord instead of a .6 chord? Then F.6(add9) chord is an inversion of D.m7(add11), so if you feel comfortable writing a ii chord with a natural eleventh, then you should feel comfortable using .6(add9) chords on both the ^1 and the ^4 scale degrees in C major. The diatonic 13 chord rooted on scale degree ^2 in C major is a D.m13, which has a P11 interval, so it's even diatonic. Can we respell the other minor chords in C major as 6ths? The diatonic 13 chord rooted on scale degree ^6 in C major, namely A.m11b13, also has a P11 interval, so you should feel totally comfortable writing a A.m7(add11) chord on sheet music, and this is an inversion of our old friend C.6(add9). What about the 13 chord rooted on scale degree ^3? In C major, it's an E.m11b9b13 chord, with intervals [P1, m3, P5, m7, m9, P11, m13], and E.m7(add11) is a subset of that, so you should feel comfortable writing in a G.6(add9) chord anywhere that you're comfortable using a diatonic E.m7(add11).
Still think that's weak? It is kind of weak. We're just respelling diatonic chord sequences. I think some of the value of respelling these things is that the respellings suggest different voicings. When you put the F in the root of a D,m7(add11) chord, you might call it an F6(add9), but it's also Fmaj(add9)(add13)
F.maj(add9)(add13):[F A C G D]
and there's a really good chance that that's how a bossa nova guitarist is voicing it. And this has a cool stack of two P5s on the end. A pianist might play the the (3rd 6th 9th), i.e. (A D G), ascending in the right hand and get a stack of 4ths, like a delicate tinkly spacious atmospheric Joe Hisaishi piece. You don't get those voicings if you're putting D in the bass. These respelling have consequences.
Ready to have your mind blown? We just saw that D.m7(add9) = F.6(add9), but they're also inversions of a dominant G.11 chord with no third, a.k.a. G.9sus4. So, like... can you use F.6add9 as V.7 chord in C major? Can F.6add9 be a ii chord and a V chord? Can you just play F.6add9 twice for a (ii V) progression? I don't know.
There are a few other 6 chord I know of that are related to the dominant 7th chord: a G.7 chord with a sharp 9th is close to being a Bb.6b9 or A#.6b9 chord:
Bb.majb9(add13): Bb D F Cb G
A#.majb9(add13): A# C## E# B F##
.
They're the same in 12-TET at least. Also G.7#5b9 is approximately equal to an Ab minor 6th chord with a G in the bass, Ab.m6/G, better known as Ab.mmaj7(add13), and also they're both approximately equal to Fm9b5.
.
I think I once saw an Ab.m6/G chord used in a (ii V I) progression in the wild. Idk if it works outside of 12-TET.
Two more kind of interesting respellings that I've found while doing this post:
This
F.6(add11) ~ D.m7b13 ~ A#.maj9
relates and F6 to a Dm7, which isn't surprising, but also to an Bb.maj7, which showed previously as a 12-TET respelling of G.7#9 and also I previously claimed that Bbmaj7 bounces well against Cmjaj7:
(C,maj7 Bb.maj7 C.maj7)
and might be a source for a whole new family of interesting cadences.
One more interesting respelling, not related to dominant 7 chords or even 6 chords really, but I just have to show you:
G.maj7#9b13 = B.maj7#9b13 = D#.maj7#9b13
Isn't that crazy? Three different .maj7#9b13 chords. I just found out about that.
Now let's respell chords from the parallel minor key!
The D.m7b5 of the C minor scale can be replaced with Fm6. The F.m7(add11) can be replaced with Ab.6(add9). The Gm7(add11) can be replaced with Bb.6(add9).
I once wrote on twitter that a good principle for introducing 6 chords into your music is to put them on every diatonic chord in your key's harmonic field, maybe excluding V.7. In C major, our usual harmonic field of diatonic seventh chords
Cmaj7 Dm7 Em7 Fmaj7 G7 Am7 Bm7b5
then becomes:
C6 Dm6 Em6 F6 G7 Am6 Bdim7
The 7 in a .dim7 chord is made by an interval of a d7 above the root, which is tunes to the same key as a M6 above the root in 12 TET, so a .dim7 chord works really well among other 6 chords.
If you just take a normal song with diatonic triads and translate them all to the harmonic field of 6 chords, it's sound good. It sounds cohesive and unified, and also maybe a little bit dark and sexy.
By comparison, the harmonic field I've been trying justify, a piece at a time, is more like this:
(Cmaj7 => C6) (Dm7 => F6(add9)) (Em7 => G.6(add9)) Fmaj7 G7 (Am7 => C6(add9)) (Bm7b5 => Dm6)
I don't feel great about any of the substitutions that I found for G7, so I'm not including those above. This harmonic field has some of the same pieces as the 6 chord field I once posted on twitter, but we're missing E.m6, A.m6, and B.dim7. So let's talk about those.
Let's start with A.m6. It's not a diatonic chord in C major.
A.m(add13): [A C E F#]
although upper chord tones don't have to be diatonic. They're sexier when they're not. The prroblem is that without a 7th scale degree on the chord, I'm not sure of its harmonic function in C major. There's a coward's way around this: A.m6 is an inversion of F#m7b5:
F#.m7b5: [F# A C E]
which is diatonic in G major. (Also it's almost an inversion of C6b5:
C6b5: [C E Gb A]
, but I'm not a Keeper of the Art, so let's leave that one to better theorists.)
So one way to get A.m6 chords into your C major progression is to modulate or temporarily tonicize to G major, and get a chord progression in G major that includes an F#.m7b5 chord, and then respell it as an A.m6.
That might sound like a lot, but it basically means that we can look at old triad rules like
(Am C) => (Am Bdim C)
and modulate the whole thing like this, adding in diatonic sevenths:
(E.m7 G.maj) => (E.m7 F#.m7b5 G.maj)
and then respell the middle chord like this:
(E.m7 G.maj) => (E.m7 A.m6 G.maj)
.
You might be wondering why I have a bare G.maj above at the end of that sequence, without a seventh scale degree. My thinking was that it should be a G.maj7 or G.6 or G6.9 if we've modulated to G major, and it could be another chord quality if we're dealing with a temporary tonicization, but most often it will be G.7 for tonicization. Lots of G.7 chords arise in C major chord sequences, and when you tonicize them, you don't change the chord quality away from .7, even though the .7 quality isn't otherwise normally used as a chord quality/sonority/type for for the I scale degree. In short, if we don't modulate out of C major, one way I know to functionally justify A.m6 chords is through tonicization. Which is basically modulation, but I'm still calling this a small win.
An E.m6 chord is an inversion of C#m7b5, which is diatonic in D major. We could pull the same trick again.
(B.m D) => (B.m7 E.m6 D.maj)
It's really not a very good trick. And where are you going to get a D.major chord to tonicize anyway? Maybe you can tonicize a D.m chord but still precede it with a C#.m7b5 from D major? Something to test, but not obviously right. Otherwise, D7 is a secondary dominant of G chords, so you could get a sequence like
(((B.m7 E.m6 D.7) G.7) C.6)
maybe.
I have a few more ideas for the theory of how to use 6 chords. One is this: they're seventh chords. That's right, you guessed it, they've secretly got diminished 7th or diminished 14th intervals, not M6 or M13. Common practice music theory says that this is the case for the dim7 chord, and why shouldn't it be the same for the other chords in that harmonic field of 6 chords that I once posted on twitter? Have you ever played a song with 6 chords on a polyphonic microtonal instrument and verified that M6 intervals sound better than d7? Probably not. I'm not super serious about this one, but I do think it merits a little investigation. I think this does a decent job of explaining why .6 and .6(add9) chords are very common in jazz: they're secretly types of 7 and 9 chords, which are a little easier to use than 11 and 13 chords. Why else would be have scale degrees ^9 and ^13 specified so often but not ^7 or ^11? "Quartal harmony?" Yeah, okay, maybe.
Next theory: 6 chords are 7th chords without 7ths. By this I mean, you can use an F6 for an Fmaj7 because and F6 is an Fmaj7(add13)(no 7). No one expects upper chord tones to be diatonic, so the presence of non diatonic 13 degrees in (E.m6, A.m6, B.dim7) doesn't need to be explained. If this were the case, I think we'd have a lot more .b6 and b6(add9) chords in jazz and bossa nova than we see in practice, since b13 is a common upper chord tone. This one is easy to test with normal instruments: whenever you see a 6 chord, try adding in the seventh that seems to explain its harmonic function in the context of nearby chords. If you see an E.m6, you can guess that it's just a diatonic .m7 chord, add in the 7th degree to get E.m7(add13), and then listen and see if the chord seems to have changed meaningfully. If adding the 7th doesn't change how to chord is functioning, then it was a .m7(add13) chord all along. If the .m7(add13) feels functionally different from the .m6, then this theory goes out the window and it's time to figure out what the different functions are.
Next idea: let's look at the pitch classes of the harmonic field with all 6 chords. Here's the field again:
C6 Dm6 Em6 F6 G7 Am6 Bdim7
and here are the pitch classes for those chords:
D.m6: [D F A B]
E.m6: [E G B C#]
F.6: [F A C D]
G.7: [G B D F]
A.m6: [A C E F#]
B.dim7: [B D F Ab]
.... Now what? I feel like maybe I should be doing some analysis of how the accidentals work across chord transitions. Like, if you have a chord progression generated by the C major diatonic triad grammar from way up above,
(C Em Am G F Bdim C)
with all of the chords replaced by their homologues in the 6 chord harmonic field:
(C6 Em6 Am6 G7 F6 Bdim7 C6)
, are the accidentals doing interesting things to link the chords? The A.m6 has an F# which could move by a half step to the root of G7, and that's kind of nice. The E.m6 has a C# that could move by half step to the C of the A.m6 chord. And the B.dim7 has an Ab, which could move by half step to the A of the C.6. The actual movements will depend on how the chords are voiced. This is not impressive: there are only so many notes, you're bound to have small steps from an accidental to one of the pitch classes of the next chord. Every chord in the 6 field has a C or a D or both, so the fact that C# moves by a half step to the next chord is completely trivial. Likewise, every chord has an E or an F, so F# moving by step isn't interesting. I just don't know what to do here.
Lol, okay, I just looked at some actual lead sheets for bossa nova and there were hardly any 6 chords? At least not in Desde Que O Samba or Nao Vou Pra Casa or Garota de Ipanema. And the ones that do appear, about half of them are like an Am6 following an Am7, i.e. normal stepwise voice leading on top of normal diatonic seven chord function. WTF have I been doing?
One more quick thought about 6 chords though: if you can use C.m6 tonically in C minor, you should be able to use A.m6 in C major. You can have an A minor modal section within a C major song. There doesn't need to be any justification like a tonicization of a G chord for A.m6 in C major. It's fine. Use it whenever.
And, maybe I never mentioned it? A rootless V.9 is a II.m6, e.g. rootless G.9 = Dm(add13) = F6b5 = Bm7b5. Also, rootless Ab.maj7b9.
Let's get back to the grammar. I think we can improve both the diatonic C major grammar and the parallel borrowing grammar a lot. For one thing, the diatonic grammar has hardly any rules involving Em, which means we have limited opportunities in introduce the chord or to expand around the chord. There's one chord progression in particular, (C Dm Em Dm C), that's common in pop music but the grammar can't generate at the moment, and that needs to be fixed. It's basically the entire structure of songs like The Allman Brothers' "Melissa" and Charles Manson's "Your Home Is Where You're Happy". Another weakness: the borrowed chord grammar right now has very few rules involving Ab.maj chords, so, for example, it won't recognize or generate the Mario cadence, (bVI.maj bVII.maj I.maj), and that's a damn shame.
Looking back over my music theory notes from past years for stuff about chord grammars I found a claim that secondary subdominant chords were all the rage in the romantic era. My notes say that (II.dim of IV), (II.dim of V), and (IV.m of IV) were common. Is II.dim even subdominant? Someone thinks so. The same document says augmented 6 chords were common, and had a subdominant function, and were resolved to dominant 7 chords. In one of my chord grammars, I had the substitution rule "V → (bII.6 V)", so that's one way to use sixths predominantly. The document also says that shared-tone chromatic mediant motion was all the rage.
Some more notes about romantic era harmony, these seem to be from "Analyzing Tschaikovsky's "Der Puppe Begräbnis"", probably reproduced with some small edits in my notes:
"An augmented sixth chord functions harmonically as a chromatically altered predominant chord (typically, an alteration of ii^(4/3), IV^(6/5), vi^(7) or their parallel equivalents in the minor mode) leading to a dominant chord. This characteristic has led many analysts to compare the voice leading of augmented sixth chords to the secondary dominant V of V. In most occasions, the augmented-sixth chords precede either the dominant, or the tonic in second inversion. The augmented sixths can be treated as chromatically altered passing chords."
"Tchaikovsky considered the augmented sixth chords to be altered dominant chords. He described the augmented sixth chords to be inversions of the diminished triad and of dominant and diminished seventh chords with a lowered second degree (♭scale degree 2), and accordingly resolving into the tonic. He notes that, "some theorists insist upon [augmented sixth chord's] resolution not into the tonic but into the dominant triad, and regard them as being erected not on the altered 2nd degree, but on the altered 6th degree in major and on the natural 6th degree in minor", yet calls this view, "fallacious", insisting that a, "chord of the augmented sixth on the 6th degree is nothing else than a modulatory degression into the key of the dominant"."
So that's all good and useful. Oh wow, this document is huge. I cannot post it all. I will just code it up and post that.
Looking at my old substitution-based chord grammar code, there are just a few things that I haven't really accounted for in my expansion-based chord grammars above. In my old grammar, I replaced replaced V.maj with VII.dim very freely. Replacing G with Bdim in all of the diatonic grammar rules and throwing out the ones look completely crazy, I think these might be useful:
(Dm C) => (Dm Bdim C)
(F C) => (F Bdim C)
(Bdim C) => (Bdim F C)
(Bdim F) => (Bdim Am F)
, although I'll have to check how they sound.
I also used to replace V.maj with III.m very freely. This is a little weird, but why not try it? None of these immediately stand out to me visually as being crazy, but I doubt that all of them will work:
(Am C) => (Am Em C)
(C Am) => (C Em Am)
(C Em) => (C Dm Em)
(C Em) => (C F Em)
(C Em) => (C Am Em)
(Dm C) => (Dm Em C)
(F C) => (F Em C)
(Em C) => (Em F C)
(Em F) => (Em Am F)
. Only four of the ten rules here actually introduce Em into chord sequences. The other six rules insert other chords into contexts that include Em.
Another rule in my old substitution grammar works directly as a rule in an expansion grammar: ("V → V VI.m VII.dim V"), which we can spell as
G → (G Am Bdim G)
. I don't know if it sounds any good. I think I just blindly copied that one from Donya Quick. I'm not anxious to add that one to my expansion grammar, but I'll give it a listen later on. This rule comes from Donya too:
When applied to my diatonic expansion rules, this mostly just reproduces other rules that I've made other ways, such as through (G -> E.m), so that's encouraging. The new ones are these:
. I'll also give them a listen, sure. I suppose I could apply the same substitutions to the borrowed chord grammar now. We get these from (G -> B.dim):
(B.dim F) = > (B.dim Bb F)
(Eb Bb) => (Eb D.m B.dim Bb)
and these frorm (G -> Em):
(E.m F) = > (E.m Bb F)
(Eb Bb) => (Eb D.m E.m Bb)
And these from (G -> Em Am):
For the second one, the substitution actually gives
and I got rid of the E.m that appears at the beginning of both sides because I think it's redundant. An insertion context needs a chord in front and a chord behind, and that's enough. I hope. I'm just making this up as I go. But it's kind of working out so far. I'll work on adding mixed mode rules for D.m7b5 and Ab.maj7 and G.m7 next time. Good night.
....
I sat down at a piano with a note book but no laptop, and I played around and found that these expansion rules with parallel borrowings work pretty well / sound pretty good:
(C) => (C Ab C)
(C Bb) => (C Ab Bb)
(C Ab ) => C Bb Ab)
(Ab C) => (Ab Bb C)
(Bb C) => (Bb Ab C)
(C Bb) => (C Eb Bb)
(G C) => (G Bb C)
(Ab C) => (Ab G C)
(G C) => (G Eb C)
(Bb C) => (Bb Bdim C)
(Ab C) => (Ab Bdim C)
. Most of them involve the chord Ab, but also there are a few new uses for Bb. I haven't tried them with different 7ths. Maybe some of the Bb chords are maj7 and some are dominant 7.
Here are the expansion rules that I feel best about so far:
"A.m C → A.m D.m C",
"A.m C → A.m E.m A.m C",
"A.m C → A.m E.m C",
"A.m C → A.m F C",
"A.m C → A.m G C",
"A.m F → A.m Bb F",
"Ab C → Ab B.dim C",
"Ab C → Ab Bb C",
"Ab C → Ab G C",
"B.dim F → B.dim Bb F",
"Bb C → Bb Ab C",
"Bb C → Bb B.dim C",
"Bb C → Bb F C",
"C A.m → C E.m A.m",
"C A.m → C G A.m",
"C Ab → C Bb Ab",
"C Bb → C Ab Bb",
"C Bb → C Eb Bb",
"C D.m → C Eb D.m",
"C E.m → C A.m E.m",
"C E.m → C D.m E.m",
"C E.m → C F E.m",
"C F → C A.m F",
"C F → C E.m F",
"C F.m → C Bb F.m",
"C F.m → C D.m F.m",
"C F.m → C Eb F.m",
"C F.m → C F F.m",
"C G → C A.m G",
"C G → C D.m G",
"C G → C F G",
"C → C Ab C",
"C → C Bb C",
"C → C E.m A.m C",
"C → C E.m C",
"C → C F C",
"C → C G C",
"D.m Bb → D.m Eb Bb",
"D.m C → D.m B.dim C",
"D.m C → D.m Bb C",
"D.m C → D.m E.m A.m C",
"D.m C → D.m E.m C",
"D.m C → D.m F C",
"D.m C → D.m G C",
"D.m Eb → D.m Bb F Eb",
"E.m C → E.m F C",
"E.m F → E.m A.m F",
"E.m F → E.m Bb F",
"Eb Bb → Eb D.m B.dim Bb",
"Eb Bb → Eb D.m Bb",
"Eb Bb → Eb D.m E.m A.m Bb",
"Eb Bb → Eb D.m E.m Bb",
"Eb Bb → Eb D.m G Bb",
"Eb Bb → Eb G.m Bb",
"F C → F B.dim C",
"F C → F E.m A.m C",
"F C → F E.m C",
"F C → F Eb Bb C",
"F C → F Eb C",
"F C → F F.m C",
"F C → F G C",
"F Eb → F F.m Eb",
"F.m C → F.m B.dim C",
"F.m C → F.m E.m A.m C",
"F.m C → F.m E.m C",
"F.m C → F.m G C",
"G C → G Bb C",
"G C → G Eb C",
"G C → G F C",
"G F → G A.m F",
"G F → G Bb F",
"G.m F → G.m Bb F",
.
This is kind of crazy. I've got more than 70 rules here, whereas my implementation of Donya's PTGG system only had like 25 rules, and it could do secondary dominants and modulations and stuff. I honestly think this is going to make cooler/better chord sequences than any of the variants of Donya's grammar that I played with, but it's still crazy.
I could maybe compress the presentation a little bit by making rules like this
(C C) |+> [Ab, Bb, E.m, F, G]
(D.m C) |+> [B.dim, Bb, E.m, F, G]
where each rule says that any of the options on the right can be inserted in the middle of the context on the left. You might think that some interpretable chord classes would emerge from that. Like the family (G, E.m, B.dim) has to emerge, because I explicitly used the transformations (G -> E.m) and (G -> B.dim) to generate additional rules. And it does. But what else? I think (F, D.m, A.m) frequently co-occur in option sets. And (Bb, Eb) might be a family. Although (Bb, Eb) usually occur in the same places as (F, D.m, A.m), so it might be just one family. There are some other regularities, besides those. The chord F.m is only ever introduced after an F chord in my rules, so far. I think Bb is only ever introduced before a C, and F, or an F.m. Still reading.
If a C chord is at the end of the context, you're probably going to insert a (G, E.m, B.dim) chord, especially if the first chord of the context comes from (F, D.m, A.m, Bb, Eb). If C is the first chord of the context, you're probably going to insert a (F, D.m, A.m, Bb, Eb) chord, the second chord in the context hardly matters at all. If the firrst chord of the context is in (G, E.m, B.dim) and the second chord is F, then you insert one of (F, D.m, A.m, Bb, Eb).
Okay, that's a first pass at compressing the grammar in broad, lossy strokes. Next...I think my next pass should look at (Bb, Eb) as a separate family, and maybe look at (A.m) separate from (F, D.m).
Or better yet, I could just stop trying to compress the thing, then code the rules up, and discover whether they sound as good, when randomly selected by a program, as they do when I'm choosing them with artistic bias at a piano
...
I coded it up! It's decent! There are more repetitions than I'd like, but that's to be expected with a context-free grammar. The generated sequences can easily be cleaned up with a regex. Here are some non-repetitious mixed-modality 8-chord phrases that start and end on C, with no C chords in between:
C Ab Bb Ab G Bb B.dim C
C Bb Ab Bb F E.m F C
C Bb Ab Bb F F.m Eb C
C E.m A.m Bb F F.m Eb C
C Eb Bb Ab G Bb B.dim C
C Eb D.m B.dim Bb Ab B.dim C
C Eb D.m B.dim Bb F B.dim C
C Eb D.m G A.m G Eb C
C Eb D.m G Bb Ab B.dim C
C Eb D.m G Bb F B.dim C
C Eb G.m Bb Ab Bb B.dim C
C Eb G.m Bb Ab G Eb C
C Eb G.m Bb F F.m Eb C
C G A.m Bb F G Eb C
C G Bb F E.m A.m F C
.
The grammar can make at least 1390 unique 8-chord phrases like that.
And here are some that are 16 chords long:
.
I tried rendering a 16-chord phrase, (C A.m Bb F G Bb F F.m Eb D.m B.dim Bb Ab G Eb C) to find out how it sounded. Just okay. The grammar needs some work. Also, I probably should have chosen 9-chord and 17-chord phrases instead of an 8- and 16-chord phrases. It sounds better if the last C chord gets its own measure. Also, sadly, it sounds better with triads than with diatonic seventh chords. Also, 16 chord sis too long to get back to the tonic, I think.
That rendering is pretty basic. It's just in 12-TET, with the barest waltz figure for the horizonal realization, and the chords are all voiced in root position, except one, the G major, that I manually respelled because the leap in the bass was driving me nutty. Also there's no natural variation in tempo, onset times, or volume. All of those are bad, and know how to fix them in code; I've done it before and I'll do it again. But first, I want to fix the grammar.
Despite all of that, it's still not terrible, I think. With better voicings, more interesting comping, and a melody on top, that audio clip would be something that I'd consider posting on soundcloud. I have lots more work to do, but I still think we've got a worthy germ of a mixed mode chord grammar here.
...
New day, new plans. Let's render multiple shorter C to C phrases in sequence and voice them better so that the seventh chords sound good. I can do that very quickly, and that'll be way easier than changing the whole grammar with rules about duration, and rechecking every rule for sound.
For the voicing and the comping, let's make it sound more like bossa nova. Befoe I was voicing the chords with
(^1 ^5 |
in the lower chord tones / left hand, and
| ^1 ^3 ^5)
in the upper chord tones / right hand.
One common way to voice chords in bossa nova is to put just the ^1 in the bass, and upper chord tones will only be ^3 and ^7. Then you use voice leading considerations to chose between (^1 | ^3 ^7) and (^1 | ^7 3) for each chord. Once you have the placement of the third and the seventh figured out, you can put the fifth scale degree on top indiscriminately. You can do more advanced stuff of course, but lots and lots of bossa nova just has sparse little 4 note chord like that, on piano or guitar. So these are the voicing options:
(1 | 3 7 5)
.
It's not a general solution, but I bet I could just assign one of those two voicings rigidly for every chord in the C major and C minor harmonic fields and get something out with good voice leading. I never actually used C.m or D.dim from the C minor harmonic field in my grammar, but here are the others:
D.m7: (1 | 7 3 5)
E.m7: (1 | 3 7 5)
F.maj7: (1 | 7 3 5)
G.7: (1 | 3 7 5)
A.m7: (1 | 7 3 5)
B.m7b5: (1 | 3 7 5)
Eb.maj7: (1 | 7 3 5)
F.m7: (1 | 7 3 5)
G.m7: (1 | 7 3 5)
Ab.maj7: (1 | 7 3 5)
Bb.7: (1 | 3 7 5)
.
I made that up, but I think it's going to work. It alternates |7 3) to |3 7) to |7 3) in the (II V I) cadence of (Dm G7 C), which I know sound good, and then I just assigned every other chord the |7 3) or |3 7) voicing depending on whether I feel like the grammar uses the chord more like a II, a V or a I. Even if I guessed a few wrong, it's not going to sound any worse than the straight (^1 ^3 ^5 ^7) voicing that I tried first. It'll be fine.
Bossa nova comping: ...
...
No comments:
Post a Comment