Chord Progression Generation Algorithm

Chords, scales, harmony, melody, etc.
Post Reply New Topic
RELATED
PRODUCTS

Post

I have made a first stab at a chord progression generator. Right now it
generates repeatable sequences of 3 or 4 chords.

Strengths:
- Not limited to notes in the tonic scale
- Not limited to Ionian mode
- The results are usually viable

Weaknesses:
- Tested using only major and minor triads
- Won't do melodic or harmonic minor scales, or any modes derived therefrom,
but is easily adjusted to accommodate them
- If this generator is adjusted to produce longer sequences, the results
sound strange and tend to wander

I'm looking for help in improving this generator. Sorry it's so wordy. I used redundancy and precision to make it as clear as possible.

Code: Select all

0. Get a 6-sided die

1.  Roll to choose the first chord in the sequence; we will call
    this the Base Chord:
     1 - I
     2 - ii
     3 - iii
     4 - IV
     5 - V
     6 - vi
     For example, in the key of C major these choices correspond
     to C major, D minor, E minor, F major, G major, and A minor
     respectively.

2.  Roll to choose a Component of this first triad; we will call
    this the Operating Voice:
     1-2 - 1st
     3-4 - 2nd
     5-6 - 3rd
     For example, the 1st, 2nd, and 3rd Components of the G
     major chord are G, B, and D respectively.

3.  Roll to choose the motion sequence that the Operating Voice
    will undergo:
     1-2 - ascending (up-up-up-up)
     3-4 - descending (down-down-down-down)
     5   - up-down-down-up
     6   - down-up-up-down

4.  Choose the number of semitones the Operating Voice will
    move:

    4a. If the current pitch of the Operating Voice is in our
        scale (e.g. in the key of C major, if the pitch is C, D,
        E, F, G, A, or B), roll:
         1-3 - one semitone
         4-6 - two semitones
        Otherwise skip to step 4b.

    4b. The Operating Voice moves one semitone.

    Use the first member of our motion sequence to determine the
    direction of motion.

5.  Repeat step 4 using the new pitch to which the Operating
    Voice has moved, and use the second member of our motion
    sequence to determine the direction of motion.

6.  If the pitch generated in step 5 is a Component of the Base
    Chord, roll to see whether we dismiss the remainder of the
    motion sequence and skip to step 9:
     1-3 - Yes
     4-6 - No

7.  Repeat step 4 using the new pitch to which the Operating
    Voice has moved, and use the third member of our motion
    sequence to determine the direction of motion.

    If the pitch generated in this step is a Component of the
    Base Chord, skip to step 9.

8.  The Operating Voice must move no more than two semitones
    from the fourth to the fifth pitch in the sequence, and the
    fifth pitch in the sequence must be a Component of the Base
    Chord. Sometimes these requirements are incompatible with
    the motion prescribed by the motion sequence and the
    fourth pitch the Operating Voice has reached. In these
    cases, either disregard the final member of the motion
    sequence, or adjust the fourth pitch in the sequence by one
    semitone, or both, as necessary.

=== Now we get down to generating chords ===

9.  We already have the first chord.

10. We now generate the next chord. It might have 0, 1, or 2
    Components in common with the previous chord (at least the
    Operating Voice will have moved), and it might have 0, 1, 2,
    or 3 Components in our scale. That makes 3x4=12
    possibilities. Start at the top of the following list and
    work your way down, determining whether or not any chords
    exist that meet those requirements:

     2 Components in common, 3 Components in our scale
     1 Component  in common, 3 Components in our scale
     0 Components in common, 3 Components in our scale
     2 Components in common, 2 Components in our scale
     1 Components in common, 2 Components in our scale
     2 Components in common, 1 Component  in our scale
     0 Components in common, 2 Components in our scale
     2 Components in common, 0 Components in our scale
     1 Component  in common, 1 Component  in our scale
     0 Components in common, 1 Component  in our scale
     1 Component  in common, 0 Components in our scale
     0 Components in common, 0 Components in our scale

    For example, let's say you're considering the item, "1
    Component in common, 3 Components in our scale". Let's also
    say our scale is C major, our current chord is C major, and
    the Operating Voice moved from G to A. The new chord must
    contain the Operating Voice, so the new chord contains A.
    The new chord must have one Component in common with the
    last. Now, there are six chords that contain A: A major, A
    minor, F major, F-sharp minor, D major, and D minor. Of
    these, two contain one Component in common with the chord C
    major: A major and F major. Of these two, just one has all
    three Components in the scale C major: F major.

    If there is at least one valid choice, roll your die. If you
    roll a 5 or a 6, reject this item, move to the next one in
    the list, and try again.

    If you exhaust the list without making a selection, go back
    to the top and keep trying.
    
    Sometimes there will be two or even three valid choices. In
    these cases divide 1-6 up evenly and roll to make the
    selection. If there are no choices, move to the next item on
    the list and try again.

11. Repeat step 10 unless this is the final chord and the final
    pitch of the Operating Voice sequence is a Component of the
    Base Chord.

    11a. If the sequence has 5 pitches, we've already generated
         four chords. We're done and can disregard step 12.
         Otherwise skip to 11b.

    11b. Find all the chords that contain the Operating Voice's
         pitch and whose other two Components differ from those
         of the Base Chord by no more than one semitone. For
         example, if the Base Chord is G major and the Operating
         Voice's pitch is B, the chords you should be
         considering are B minor, G major, and G-sharp minor.
         Select one of these chords as the final chord by
         rolling your die.

12. If we have generated only three chords and we assume a
    four-bar phrase, we play one of our chords for two bars.
    Roll to see which:
     1-2 - 1st chord
     3-4 - 2nd chord
     5-6 - 3rd chord
    Otherwise we're done.

Post

This looks really cool. I should be getting snowed in and I have my acoustic guitar home so I'll see how it works. I've been meaning to teach my kids Dungeons and Dragons which will take care of the dice.

Post

sergevoluminous wrote:This looks really cool. I should be getting snowed in and I have my acoustic guitar home so I'll see how it works. I've been meaning to teach my kids Dungeons and Dragons which will take care of the dice.
Let me know if anything is unclear. I'll be checking this thread every half-hour or so.

Post

MackTuesday wrote:I'll be checking this thread every half-hour or so.
You won't need to if you just click the link "Watch this topic for replies" below. Then you'll get an email notification as soon as anyone replies ;-)
We are the KVR collective. Resistance is futile. You will be assimilated. Image
My MusicCalc is served over https!!

Post

I luv 2-5-1 progressions .

Post Reply

Return to “Music Theory”