On implementing the augmented fifth

Continuing the discussion from Some more suggestions:

[quote=“Ryan, post:4, topic:76”]“Missing” chords: This is an important yet tricky issue. Hooktheory tries to strike a balance of maintaining the simplicity of the user interface while at the same time allowing users to compose/analyze with a robust and often complex set of harmonic tools, which sometimes requires tradeoffs. From the beginning, it was always important point for us that we build a framework that prioritizes chord function. We could have designed HookPad to allow users to put in arbitrary chords (e.g., entering chords by chord name and quality) the way that most other music software does. However, by encouraging our community to think about chord progressions functionally, we hope to to answer questions like, “Why do these chords sound good together?” rather than, “How do I play this song on my guitar?”. We also want to show people that music theory isn’t quite as scary as it seems :smile:.

When we were first designing the backend to Hooktheory, we supported “embellishments” that included ♭5, ♭9, #9, #11, etc. These were mainly designed to accommodate so-called alt. 7 chords, that come up from time to time. Here’s an early example from Sara Bareilles’s Bottle It Up:

We eventually took this away, because they cluttered up the interface and felt their function was too limited. That being said, I personally find a few omissions particularly inconvenient. Without augmented chords, classics like Blackbird, and Stairway to Heaven can’t be properly analyzed.[/quote]
The different triads built on the natural minor scale and the harmonic minor (HM) scale are: (using popular music style for Roman numerals)
Natural: ♭III, v, ♭VII
Harmonic: ♭III+, V, viio
The V/ and viio/ secondary chords were most likely implemented to allow use of these harmonic minor functions in the Major mode in Hookpad before modes and borrowed chords were available, as extensive use of V/vi and viio/vi are seen in older Theorytabs. (IV/ was probably due to the subtonic ♭VII instead) On the other hand, ♭III+ serves little harmonic function in tonal music as a chord built on the HM scale. When the augmented triad is not employed in chromatic passages, it usually appears instead as ♭III+6 = V+, whose function as a substitute for V in both classical and contemporary music, as well as ability to resolve to five other major or minor chords by moving one note by a semitone, has been well established. Examples of progressions using the augmented triad will be given below.

There are two ways to implement the augmented triad: through implementing the HM scale with the existing 7 diatonic modes, or through adding an “aug” embellishment option. From this point + instead of (♯5) will be used to refer to the augmented fifth since this post is not concerned with the other alterations (♭5, ♭9, ♯9, ♯11 etc.) as mentioned in the original post. Should augmented fifth be added to Hookpad, the plus symbol should also be used instead of (♯5).


The method of adding augmented fifths through the ability to borrow chords from the HM scale has been suggested before. The idea is that, by adding the harmonic minor scale as a “mode” that can be chosen in the key menu, a variety of chords containing ♯5 can be natively inserted in Hookpad and referenced by the Trends API; it is also possible at the same time to add modes of the HM scale itself. However, this could further complicate the Hookpad interface by simply introducing these new modes and, unlike the diatonic scale, the HM scale differs from each mode of itself by more than one note, that no simple transformation akin to sharpening or flattening the diatonic scale could apply to the HM scale. Some of the immediate consequences include:

  • Mode VII of the HM scale is inconsistent with the Mixolydian mode because of the raised fifth degree, and consequently the HM scale becomes supermodal in the relative Mixolydian, yet its mode VII corresponds to the supermode containing 8 flats;
  • By sharpening one scale degree of the diatonic scale, the harmonic scale alterations for the S(5) and S(6) supermodes contain double accidentals in F♯♯ and C♯♯ respectively;
  • Before the Trends API is redone to adopt the parallel Major instead of the relative Major, a lot of chords from modes of the HM scale would take a long time to appear frequently enough to show up in the Trends page and Magic Chord;
  • If chords can only borrow from only the HM scale but not its modes, there would not be enough transpositions to allow chords built upon it to be used in all 12 pitches (e.g. +M7, Madd♭9, +7 via the nonstandard ♭III+6(add9)).

After all, the HM scale is clearly not a mode of the natural minor scale, and using HM chords (melodic minor, even) in natural minor or vice versa can hardly be considered mode mixture since the HM scale is per definition an alteration of the natural minor (Dorian, for example, is not per definition Aeolian with ♮6). Hence “Scale” needs to be separated from “Mode” in both Hookpad’s key menu and the borrowed chord menu. But this will not resolve these technical issues - the fact that adding scales that are not the diatonic scale to Hookpad will upset the fundamental manner by which it references all chords using transposed / shifted versions of the major scale.

Ultimately, chord types shall not be evaluated from the scale structure and the chord root’s scale degree (although they can be pre-computed); the diatonic scale simply comprises seventh chords in the form of {M, m, m, M, dom, m, ø}, the HM scale {mM, ø, +M, m, dom, M, °}, but these chord types in turn are not bound to appear on fixed scale degrees of some scale transposed from the current key’s tonic pitch, so that the chord can be unambiguously defined by the chord type and the scale degree, without the need to reference any specific mode to infer its chord type. Such a large update could eventually eliminate many of the problems evident in the Trends API and, of course, enable addition of a lot more scales. (Compromises must be made that supermodal chords may have to be named by mode numbers prefixed by accidentals)


The second way, which I prefer over the HM scale method to be implemented into Hookpad, is to add the augmented fifth as an option on the list of chord embellishments. Though chords unique to the HM scale could no longer be used, e.g. mM7 and °7, it does provide a more direct approach to establishing the functions of the augmented triad.

Somewhat like the behaviour of secondary chords, the “aug” / “+” embellishment will override all triads and use the augmented triad regardless of the chord quality; so ii+ is D-F-A♯ = ♭VII6 but only II+ D-F♯-A♯ is available. Moreover, the augmented fifth can be combined with the “7” to create two types of augmented seventh chords. Besides, the embellishment also works for the three kinds of secondary chords. Inversions of these augmented chords are possible, and they need not be treated as identical to other augmented chords even if they have the same makeup, e.g. VI+46 and IV+. Take the chords in the Major key for example:

  • Standard:
  • Augmented {0, 4, 8}: I+, II+, III+, IV+(/), V+(/), VI+, VII+(/)
  • Augmented seventh {0, 4, 8, 10}: II+7, III+7, V+7(/), VI+7, VII+7(/)
  • Augmented major seventh {0, 4, 8, 11}: I+7, IV+7(/)
  • Nonstandard:
  • Second inversion of added fourth minor {0, 5, 8, 10}: II+7sus4 etc.
  • Incomplete fourth inversion of diminished ninth {0, 5, 8, 11}: I+7sus4, I+7sus2 etc.
  • Italian sixth {0, 4, 10}: Lydian I+46sus4

The only drawback I could think of is that the Roman numerals may have a slightly crowded superscript when distinguishing +7 and +M7 in borrowed chords, e.g. between IV+7 and IV+♭7 borrowed from Dorian. It is up to the staff to decide whether these augmented fifth chords are recognized in the current Trends API without embellishments (like the suspended chords) or simply neglected (like supermodal chords) before adopting the parallel major method.

The augmented triad accepts no workarounds; replacing its major third or augmented fifth with other intervals will misrepresent the characteristic tension and function of the augmented triad. I hope the Hooktheory staff would carefully consider implementing one of the two options to allow usage of the augmented triad in Theorytabs. Finally here are some demo chord progressions using the augmented triad: (alternate notations are possible)

  • I - I+(III+46 or V+46/vi) - vi6
  • I - VII+7 - v6 - VI7
  • ii - V+ - I
  • ii - VI+56 - IV46 - V56
  • iiø7 - V+7 - i
  • iv - V+ - ♭VI7
  • i - ♭II+7 - V7/v - V+46 - iv - ♭V+7 - V+ - V
  • i - II+24 - viio7
  • I - ♭III+ - ♭V+ - VI+
  • i - V+56 - i24(i♭7d) - VI+(V+/ii) - ii
  • V - I+7sus4 - i (nonstandard notation)
2 Likes

@HertzDevil , thank you for your thoughts.

The augmented issue has troubled us for years, mostly because we couldn’t form a consensus as to how to properly address it. Augmented chords are an important part of both classical and popular music, and so it seems that Hookpad should support them.

@HertzDevil has outlined two approaches for implementing augmented chords:

  1. The addition of a harmonic minor scale and its modes.
  2. An “aug” embellishment

Hookpad computes chord quality by building up triad or seventh chords using diatonic scale degrees, then examining the resulting intervals between the tones. In other words, Hookpad hasn’t memorized that seventh chords in the major (ionian) mode built on scale degrees 4, 5, and 7, have major 7th, dominant 7th, and half diminished 7th qualities; these qualities fall out naturally from the given scale. This emphasis on diatonic harmony is an essential part of Hookpad. Instead of allowing arbitrary chords (specified by root note and quality) like other music composition software, Hookpad emphasizes chord function by using relative notation and provides a chord palette that is harmonically close to the key.

Implementing approach #1 would be consistent with the current setup. In this case, Hookpad would automatically recognize that in the new harmonic minor scale, the III+ chord would be augmented. This would also give us access to other chord qualities such as the “major minor 7th” and the fully diminished 7th.

However, as @HertzDevil has pointed out, it’s not clear if III+ shows up too often in practice. If someone wants to just use an augmented chord, it may not be straightforward to figure out how to get it. If users are flipping through inversions and modes to try to find how to make III+ line up with the chord root they’re looking for, it seems to defeat the purpose of trying to functionalize it.

Approach #2 would certainly allow augmented chords to be used in a straightforward manner. One concern I have with this approach, is that it seems to be a slippery slope. By allowing users to explicitly specify a chord as augmented, it seems to give preference to this particular quality. Why not, for instance, allow users to specify a chord to always be major, or minor?

One could argue that we effectively allow users to specify a major and diminished quality by using the applied V/x and viio/x options, however, I would counter that these applied chords remain somewhat functional. V/vi and viio/vi, for instance, usually cadence to vi. In pop, the subdominant IV plays the role of a cadence chord, and so IV/x was added as well. These applied options were implemented so that we could both explain and demonstrate the function of secondary cadences, not as a hack to force the quality of arbitrary chords, even if this is sometimes necessary to get certain chords to show up in Hookpad.

Before moving further with this option, I would want to think about a few things:

  1. Is the augmented chord quality more important than other missing qualities for the purposes of the database? If we do implement approach #2, I would not be keen on implementing all other missing qualities in the same manner. The viio7 is an exception, which could be implemented by making applied vii/x chords fully diminished 7th chords instead of half diminished 7th chords when 7 is checked.

  2. It seems that inverting an augmented 7th chord so that the #5 is on the bass would create some exotic chords. In the key of C, inverted chords with a major 7 like I7 chord would be: {G# B C E}, which I suppose is C7(#5)/G#. V7 would invert to: {D#, F, G, B}, maybe a D#(#5)(add9), or perhaps just C7(#5)/D# ? Sharped keys could have double sharp chords, but these could be replaced by enharmonic equivalents. I suppose we could also not allow inversions to the #5, which probably should never be done anyway in a functional sense.

  3. It seems that allowing any chord to be augmented gives rapid access to chords that are pretty far away from the tonic. Naturally, this sometimes happens (borrowing from far away modes for instance), but this would be the first feature in Hookpad that doesn’t have any purely functional explanation. One idea would be to only allow major triads, and major or dominant 7ths to be augmented (i.e., only enabled for I, IV, V, V/x, IV/x and their seventh chord equivalents). This would support the notion of augmented chords being a type of embellished major chord, creating tension as in: I → I+ → vi6. Although, one could also argue that augmented chords embellish a minor chord as in: vi → I+64 → vi42, even if this example could still be created with this constraint.

  4. Ultimately, the addition of augmented chords in this fashion seems to increase the overall complexity of Hookpad. This would also require a decent amount of work under the hood to override the music theory logic that Hookpad uses to make room for this feature. The question would be if this feature is valuable enough to our users and community to outweigh the effects of both increased complexity of Hookpad and developer bandwidth (we’re working hard on your other requests too :)) .

As always, we welcome all feedback on this issue.

  1. Yes. As I said the augmented triad accepts no workarounds; you cannot really replace it with any other chord in the same way viio/ approximates viio7/, V7sus2 approximates 7♭9, or even 24sus4 approximates 6/9, because the augmented triad is not a subset of any other chord supported by Hookpad right now.

  2. Due to the symmetry of the augmented triad, inversions of the augmented seventh chords do create exotic chords; I+34 is the incomplete G♯+M9 and V+34 can indeed be ♭III+(add9) borrowing from the Minor mode. This I believe is akin to how 6sus4 was used to access sus2 in older versions.

  3. Does not matter as an embellishment; even if augmented triad is enabled on just one scale degree, augmented chords can still be used on all 12 pitches including one pair of enharmonic pitches due to the 6-sharp and 6-flat supermodes. It depends on which of the following you would consider being more complex for Hookpad users in general:

  • Accessing 7 diatonic modes and 6 supermodes to reach all chords of the same type (e.g. diminished triad as it is right now)
  • Overriding chord types using embellishments that behave like secondary chords (this does not apply to suspended chords, which if it does, would immediately disable maj7sus4 and ø7sus4)
  • Accessing 7 modes of the harmonic minor scale that often become supermodes (the most indirect way for sure)
  1. Again, approach #1 would drastically increase the complexity for reasons given above, much more than adding a checkbox on the list of embellishments.

It is a direct consequence of disallowing it that more often than not when an applied chord appears in Hookpad it has no functional value attributed to its target chord. From Trends, about 53% of the time V/ii resolves to ii (including 27, L2, L27, 5/5, and their inversions), 35% V/iii to iii (including similar variations), 31% viio/iii to iii, 22% viio/IV to IV, 0% IV/iii to iii - even though I had already worked to remove instances of incorrect secondary chords. It appears that for some users secondary chords are indeed a “hack to force the quality of arbitrary chords” so long as they can be accessed from the limited repertoire of secondary chords and their inversions/extensions, thus eventually these non-functional appearances of applied chords would only cause more confusion on the function-slash-degree notation for the Roman numerals because the Roman numerals are now misrepresentative of their originally designated functions.

I don’t know how the staff and the users in general would balance between accessibility (to reach all chords without complicated, indirect steps) and accuracy (to associate each chord with a clear diatonic functionality). The misuse of secondary chords, apart from due to the lack of borrowing chords in older versions of Hookpad, is an example of attempting to cope with the functional approach when no music that appears on this site ought to use chord progressions limited to diatonic functions.

1 Like

Hookpad is a nice tool, and the theory it promotes is helpful, but I’m a physicist, and when theory doesn’t match reality, we change the theory. Reality includes the augmented chords. 'Nuff said.

1 Like