Harmony Generator / Creating Harmonies

(Top of page)

Harmony Generator menu

What does it take for the Harmony Generator to run?

The Harmony Generator at work Generating / creating harmony voices
Examples 1 – Run of the mill Examples 2 – Chord extensions Examples 3 – Peculiarities

For accessing items on this page without scrolling, click on the header above to see the menu.

This page not only shows how to use the 'Harmony generator' tool on the Editor/Player's Edit menu; it also explains a simple way of creating harmony voices to a given melody.

The audio files on this page sound quite a bit harsh compared with the rendition in the Editor/Player.

The harmony generator which automatically creates one or more tight harmony voices to voice 1 (expected to be lead) can be considered a work in progress. Even with the restriction to two added voices (plus bass) it does not produce 100% flawless results in all instances. Some corrections may always be necessary. Of course, with harmony voices, there is no single correct way of arranging.

This is a screenshot of the 'Harmony generator' menu. Quite simple.


The generator is set up to turn a single melody into tight 3-part harmony. Currently, there are no rules defined by which the generator could create a 2-part harmony on account of the degree of freedom the second voice has in this setting.

The bass voice produced merely consists of key notes of the current chord, for the time being without any passing notes. It may be updated/upgraded later.

What does it take for the Harmony Generator to run?

These are the bare necessities:
1. Lead melody (must be voice 1)
2. Chords (the first row must have a chord).
3. Number of beats per row if more than 1

The generator needs beats to find harmonies because sometimes, beats and offbeats are treated differently. The default number of beats is 1. Empty fields are autofilled with 1's on running the generator, or when clicking the #♩ icon at the column top.

The Harmony Generator at work

Let us look at some screenshots and listen to the sound samples to help you understand the difficulties such an auto feature faces. They will also show you how to solve them – or some of them, maybe...?

For a lead melody consisting of just notes of the current chords of the progression (see chord column), the generated harmonies are correct:

Roll in my sweet baby's arms

As you can see, the lead voice (yellow) consists of chord notes (see chord column) – with the exception of rows 29, 30...

Lead


...with tenor and baritone following suit:

Lead, baritone, and tenor

No passing notes here!


If the melody contains passing notes, the generator scores well, too (in most cases).

Banks of the Ohio

Here, the lead voice (yellow) consists of pieces of the scale.

Lead


Lead, baritone, and tenor

Lots of passing notes!


Problems began with melody notes that were not part of the scale, or not part of the current chord without being passing, that is, notes that were on the beat with a full accent.

How mountain girls can love

Note 5 is not part of the 4 chord, yet is sustained for 4 beats. The same with the 3 note and 5 chord on rows 10/11.

Lead

Lead, baritone, and tenor

Such a note, rather than being a false note, is merely an extension of the chord. This happens all the time, is usually intentional and part of the musical idiom.

The solution for Harmony Singing 101's harmony generator feature was to add a column called 'vn' to the melody column where 'virtual notes' can be entered. These notes 'show the harmony generator the way', as it were, keeping it from being mislead by the 'false notes'.

The vn column can be expanded/collapsed by clicking on the voice symbol on top of the selected voice column or by pressing Alt+n on the keyboard. Of course, if you don't use the generator, this column is meaningless, and it refers only to voice 1.

The 6 and 2, respectively, entered in the vn column tell the generator to act as if the sung notes were chord notes, so that it makes good note choices for the harmony voices.

The 3 sung against the 5 chord – which adds the 6th note of the 5major scale to the chord – is so common and natural it happens in countless songs near the end of a verse or chorus. In an earlier version of the generator you had to enter 2 as substitute for 3 as pictured, but the upgrade made that unnecessary in all cases where the 5 chord resolves to a 1 or a 4 chord.

Here is one with several instances of virtual notes, notably with blues notes 3b (flattened 3rd against 1major chord) and 3b (flattened 7th against 4major chord).

I am a pilgrim

Lead

Lead, baritone, and tenor





Rows 10/11: 'blue' note 3b. Substitute 3 to get the correct chord.














Row 26: 4 for 5 against 4 chord.

Row 29: 4 for 3b against 4 chord. Here, 3b is the flattened 7th of the 4 chord. A virtual note in this case is just one way of dealing with flattened 7th. More about that below, see Examples 2.


Another instance of substitution. On row 37, the sung note is 1 which is the 4th note of the 5 scale – not a 5 chord note! The 7 fixes the chord.

Because the generator's choice of notes depends on the beat structure defined in the 'beats' column, attention must be paid that the beat numbers are correct for each syllable.

Chord change on an offbeat

If there is a chord change on an offbeat, enter this chord on the row and enter the letter 'b' (for 'beat') in the field right above the chord. This tells the harmony generator that the beat comes right before the chord, which is another way of saying that the chord is on the offbeat. It doesn't matter if the row with the 'b' starts on the beat or on the offbeat.


Generating / creating harmony voices

Tweaking the generator with the virtual notes column was fairly simple, but there was another challenge ahead!

Skipping notes

Let us again look at the standard harmonized scale introduced on Harmonized Scales and its construction principle.

From here on down (and everywhere), 'current chord' means the (most recent) chord which is played, which is not necessarily identical to the one that is sung. It is the (most recent) chord indicated in the chord column, although the chord extension may just be there to get the harmony generator to pick suitable notes for the harmonies.


Going from each lead note (yellow), we get the tenor note (beige) by skipping the next note of the scale of the current chord. From the tenor note, we do exactly the same for the high baritone (blue) – maybe to be transposed down an octave when we are done with the harmonies.

This note skipping works nicely all the way to the top of the scale.

However... as detailed on the mentioned page, Harmonized Scales, the practical value of the 3-part scale above is mostly limited to transitions from one chord to the next as it contains only one chord of the key it is in and its octave (rows marked green), and after three modifications we arrived at this:


We gain two more key chords, but also some notes that don't belong to the scale!


...and there goes the 'skip the next note' rule, as this choice of notes/chords sometimes requires skipping two notes.


Luckily, there is a solution to this contrariness: We boldly refer to the three tones immediately preceding the key note of the current chord as a note cluster to be counted as one single note, and sure enough, the rule is honored (again)!

As a reminder: With this scale, and with the chords that are sung, 1major alternates with 2minor, while the backing chord remains 1.

But what happens if the band plays the same chords as the one that are sung, that is, if they change chords on every note of the scale?



The short answer is: Nothing.

OK, what changes is that the clusters are comprised of different notes and appear in different locations because they must precede the key note of the current chord (which now changes on every note). But in terms of tenor and high baritone notes, as you can see on the chart, it makes no difference at all.


Skip-a-note Rules

  1. Cluster the three (if major) or four (if minor) halfsteps just below the key note of the current chord and count the cluster as one note;
  2. from the lead note, going up the scale of the current chord, skip a scale note (or the cluster) to get the tenor note;
  3. from the tenor note, skip a scale note (or the cluster) to get the high baritone note.
  4. For 3-tone chords (that is, chords without extensions) the baritone is the high baritone transposed by one octave down.
  5. In view of the above restriction to 3-tone chords, the 'safer' method to find the baritone note is by starting on the lead note, but this time going down the scale of the current chord, skipping a scale note (or the cluster). Of course, if the lead note is the key note of the current chord, the 'note' to skip is the cluster, and you will 'land' on the 5th note of the scale. This is your baritone note.
  6. If the tenor or (high) baritone note you have 'landed' upon is a cluster:

    • if the current chord is a major chord, your standard choice is the 6th note of the scale of the current chord, 3 halfsteps below its key note. In the example below, the current chord is 1major.
    • if the current chord is a minor chord, your standard choice is the flattened 7th note of the scale of the current chord, 2 halfsteps below its key note. In the example below, the current chord is 1minor; hence, its cluster comprises all four notes between 5 and 1'.

While the generator uses the above rules most of the time, there exist lead melodies between chords that call for a harmonization according to the standard harmonized scale above because the latter provides the perfect transitions between the 1 and the 4 chord, and between the 5 and the 1 chord, and vice versa.

Examples 1 – Run of the mill

Let us now look at some applications of these rules.

I wouldn't change you if I could


The chorus goes from 1 to the 4 chord on the second syllable. Note that on row 2 the cluster vanishes from behind the 1 because the key note is now 4. Its cluster is only relevant on rows 7/9.

Row 5: If the chord were 1, we would skip the whole cluster (6 7b 7) and land on 1'. But the current chord is 4, so, we skip 6 and land on 7b. Why 7b and not 7? On the 4 scale, 7b is the fourth note. Sorry to say, but 7 ain't part of the 4 scale.

Row 7: We skip the 4 chord cluster.

Row 9: The first arrow lands on the cluster of the 4major scale, so the tenor note comes to be the 6th note of the 4major scale as the standard, which is 2' (3rd halfstep below the key note of the 4major scale). The next note after the cluster is 4', so we skip it to get to 5' which is the high baritone.

Row 10, and we're back at the 1 chord. The lead note 6 is part of its cluster, and the next note to skip is 1'.


Shady grove


This song is in a minor key and has both minor and major chords.

Row 4: Note that the 7b major chord's cluster is (5 5# 6).

Row 7: From 7b major we are back at 1 minor.

Row 9: The cluster for minor chords comprises not just three, but the four halftones just below the key note of the current chord because the 6th tone of the natural minor scale is 5#, and the cluster always includes the scale notes between 5 and 1. The complete 1 natural minor scale is:
1   2   3b   4   5   5#   7b   1
and its cluster is (5#   6   7b   7).
Of course, if the current chord is 2m, these notes are:
2   3   4   5   6   7b   1   2
and its cluster is (7b   7   1   2b).

Row 10: We skip 5 to get the tenor and end up at the cluster. The standard note in the minor cluster is neither 6 nor the leftmost note as with major chords, but the second one from the right, which is a whole tone below the key note.
We skip 1' and end up on 2', the high baritone note.

The rest conforms to the rules as well.


Don't let your deal go down


This song has some chords with notes not being part of the key scale. Here, recorded in the key of G, it has a ragtime progression right from the beginning of the chorus, starting on E, or 6 in the number system. In the ragtime progression, the chords follow the circle of fifth counterclockwise until the key chord is reached: E > A > D > G = 6 > 2 > 5 > 1. Each successive chord is a fourth (= 5 half steps) above or a fifth (= 7 half steps) below the last.












On row 25, we have the 'blue' note 3b on a 5 chord that we might 'correct' with a virtual 2 on the vn column, just like we correct a 3, but it's not necessary with a 3b and wouldn't change anything.


Examples 2 – Chord extensions

On 'I am a pilgrim' above, row 29, we already had a way of dealing with a flattened 7th. This paragraph looks at tweaking the generator further to incorporate chord extensions (besides minor mode). In all these cases, the chord extensions are not necessarily played by the band. They are there to help the generator pick fitting notes for harmonies.

The addition of chord extensions makes singing and music in general so much more interesting and pleasing to listen to by adding additional note choices for the harmonies, but also means that some notes formerly skipped are now landed upon, which in turn signifies the end of the line for the skip-a-note rules as a safe means to find harmony lines. Please check out the next song example below, row 8.

The tricky 7th chord: Banks of the Ohio (again)


Row 8: On the chord change to 5 we set the extension to 7th by clicking on the 5 and pressing the arrow up or down keys until _7th appears. The result is the 5-7th chord 2-4-5, for which the skip-a-note rules are no longer valid. The cluster for the 5major chord (as well as the 5-7th chord) comprises the notes (3, 4, 5b). So, starting from 2 to get the tenor note, the cluster is not skipped at all, but its note 4 chosen as the tenor note because 4 makes this chord the 5-7th we set for this row. Likewise, starting from the tenor note 4 in the cluster, the generator does not skip 5 either, but chooses 5 for the (high) baritone note. Actually, 6 or 7 would be possible as well, but it is up to the user to explore these possibilities in knowing that chord extensions open the door to more flavors too many for the generator to handle.

Row 9: We cancel the 7th extension with _x entered with the arrow keys, too. The result is a standard 5 chord 2-5-7 for which the generator again applied the skip-a-note rules, skipping both the cluster (3, 4, 5b) and the 6.

Let's say that on row 11, we want the 5-7th back just for this one row. We accomplish this with Alt + the arrow up or down keys until <7th appears. View this as an 'injection'. canceling it is not necessary as it lasts only for a row (that is, for the length of the beats on this row). Also, there is no <x option.

Row 14: Indeed, we see that the lead note 4 produces a chord different from row 11, actually a 4 chord, but that's OK because it's a passing chord and is resolved on the next row where we're back at the 1 chord.

Row 29: We want the tenor note to be a 4 as a nice bridge between the 5 on row 28 and the 3 on row 30. One possibility to achieve this is to make the 5 chord a 5-7th chord again, so instead of entering 5_7th we just enter _7th. We might as well inject the 7th with <7th. It wouldn't make any difference here because with row 30 comes a chord and mode/extension change anyway. BUT... if there were more rows coming up still under the 5 chord, _7th would be effective until it is canceled with _x, or until the next chord change. So, _ means 'until further notice', while < means 'just once'.

The other possibility to get the 4 as the tenor note is to define the chord for row 29 as 1. This removes the 5 chord's cluster (3, 4, 5b) and adds the 1 chord's cluster (6, 7b, 7) below 1, which is out of the way. So, 3 is skipped, and 4 gets to be the tenor note. Then, 5 is skipped, and 6 becomes the high baritone note. If we look at the 2 as the key note of this chord, 2-4-6, it is a 2minor. But considering that the band still plays a 5 chord on that row, it makes more sense to look at the the 5 as key note, and the chord 2-4-6 then becomes a partial 5-9th chord which contains both 4, the flattened 7th, and 6, the 9th note of the 5 scale.

Tweaking the generator like this ensures a nice descent on tenor and baritone between 5 and 3, and 7 and 5, respectively. It could just as well be an addition to the skip-a-note rules, namely to use the 1 scale instead of the 5 scale in anticipation of the end of a verse. In Deep water, below, the same trick has been used on row 27. Just for the generator, the chord changes to 1 while for the band, the change comes on row 28.

The swinging 6th chord: Deep water


Rows 3/17/22: The 6th extension was introduced on row 3 because it didn't sound right with 6th from the onset of the chord. So the change was made after hearing the result... because the generator didn't know.

Row 6: The 4 chord with 7th extension works well, though.















Row 26: Virtual note 2 added to fix the 5 chord.

Another case for 6th chords: I'll see you in my dreams


This song from the pre-swing era has quite a few melody notes that are not part of the chords they are sung against. A lot of them are 6th notes of the current chord, sung on the beat, not as passing notes. So, to give the generator a good start, the _6th extension is added to most of the chords here. If we don't do that, the generator will apply the skip-a-note rules and produce utterly unfitting harmonies.

Rows 5, 10, 21, 24, 25, 27: Furthermore, the virtual notes take care of those notes that are not even part of the 6th chords.

This song example also shows the limitations of the generator. In order to tweak it with extensions, you need to be able to recognize, for instance, a melody note as the 6th note of the current chord (the note 3 halfsteps below its key note). But if you can do that, why would you need the generator?


Examples 3 – Peculiarities

Triplets galore: Making believe


This song has many sung triplets. The screenshot shows how to define them.

Row 1: The song starts with a triplet, 'Mak-ing-be-'. To mark these syllables as a triplet, add '3' or '3_' in front of each syllable.

On the beats column, on the first row of the triplet, enter the number of beats that the triplet covers. This number must be even; it usually is 2 or 4. Leave the other two fields blank; they are autofilled with 0 on clicking the beats icon on top.




The next example shows some limits of the harmony generator.

Variations beyond the generator: Eight more miles to Louisville


On rows 9 and 12 we have a 2 each in the lead voice, both against the 4 chord. In the first instance the generator produces a 7b as baritone note, but in the second, it's a 6 instead, thanks to its ability to discern when to apply the skip-a-note rules and when to use the standard harmonized scale model. That way, the problem is avoided that on row 9, the 7b sounds fine while the same sung chord on row 12 would not, the symmetry of the melody notwithstanding.


However, beyond that, there are other possibilities for row 12. We can substitute 7 for 6 and make the chord a 5major, which also moves the tenor note up a tone. The setting that produces this chord, of course, is a 5 chord entered in the chord column (written as 4:5 because the instrumental chord is still 4), but we were not aware of the alternatives before hearing the result.


If we want the 4 in the tenor back for a 7th flavor but the 5 chord to stay there... this in turn can be achieved by entering 5_7th (or 4:5_7th). But again, the fact that the generator can produce these variations on the specific settings is not very helpful in hindsight.



Unrelated to the generator, the next example deals with the often heard and somewhat bewildering vocal anticipation of the next instrumental chord, completely disregarding what the instruments play at that moment.

Ignoring the instrumental chord - 1: Don't this road look rough and rocky


Rows 5/6: If these notes coming from the generator and the rules were passing notes, they would be OK, but they are not, and the 5 is not a note of the 4 chord. So what can we do?


We can change baritone and tenor to be chord notes: 4 and 1'.

The generator setting that would produce this is two 'virtual 6s'.


The above solution seems reasonable, but what we often hear in the real world is a 1 chord bluntly sung against the 4 chord (or the 5 chord) just before the instrumental chord resolves to 1. Very typical of bluegrass, sounds great!

The generator setting that produces the 1 chord is, of course, a 1 (or 4:1) in the chord column.


Ignoring the instrumental chord - 2: I wish you knew


Row 3: Here, the fully accented, sung chord 7b replaces the 1 chord played. This sounds fine since the 7b is almost identical to a 1_9th chord, which nicely resolves to a 4 chord. Again, the clear way of doing this is placing the played chord before the sung chord and separate them with a colon. The sung chord usually needs to be cancelled on the next row, but in this example, the progression changes to 4 anyway.
However: on row 4, again, the 4 chord played is ignored as the sung 7b is sustained into the 4 chord by one beat. The cancellation of the second 7b happens on row 5 by the presence of 4.

Again, as a demo, the special entries in the chord column are there for the generator to pick the right notes and are meaningless if you don't use the generator or make the changes afterwards.







Singing on the offbeat: Livin' in black and white

This song has numerous instances of extended notes sung on the offbeat. It's very common, and in such cases filling in the beats column can be quite tricky if you want to stick to a particular singer's rendition.