NOTE: This is a very old version of the chord progression generator. The most recent (and much improved) version is located here:
Chord Progression Generator V2
**************************************************
This is a Java Applet that generates random chord progressions. You need to have the latest version Java installed (download from
Java.com) and have Java enabled in your Internet browser.
Chord Progression Generator V1.03
The chord progressions are shown in Roman Numerals, so in order to use this information you must pick a key and apply the Roman Numeral progression to the key. If you need a refresher on Roman Numerals and how they relate to keys, see the section on Roman Numerals in my
Music Theory Basics lesson. One goal is to eventually be able to choose a key and have it generate the actual chords you would play, but I'm new to Java (this is the first applet I have written) and using Roman Numerals was much simpler to start with.
This chord progression generator is different from the ones that I have seen because it actually uses music theory to generate "good" sounding progressions instead of randomly picking chords from a key and putting them together. The theory used is actually very simple, the chord progression movements are limited to
specific movements which guarantee that the flow from one chord to the next always sounds good musically (such as the I IV V progression, which follows the same movements). These specific movements are explained in my lesson on
Harmonic Conjugations. If you are new to music theory, you may want to start at the beginning of my
Music Theory Basics lesson and start working up towards the harmonic conjugations lesson.
No theory is involved in the addition of the chord extensions however, the extension is simply added at random if one or more of the extension buttons are pressed. So if you have several of the extensions enabled you may get some very strange sounding progressions, but the basic triad portion of the progression should always sound good.
Buttons:
Start: used to generate the progression, which is displayed below the buttons.
Extension: used to enable extensions and the next time the Start button is pressed that extension will be randomly added to the chords in the progression.
Reset: only resets the buttons and does not remove the displayed chord progression.
<= o7: toggles the 7th chords between half diminished (disabled) and full diminished (enabled) for the vii chord. The "<=" is supposed to be an arrow showing that it is related to the 7th button.
Start on Tonic: always starts the chord progression on the tonic (I)
End at Start: always ends the chord progression on whatever chord the progression started on. This stetting will generate as many chords as it takes to get back around to the starting chord.
The extensions are not counted, so once the same basic triad appears again it will end the progression even if it has a different extension.
If "Start on Tonic" is enabled, then the progression will always start and end on "I".
The last chord is optional and marked with a double asterisk (**). If you are looping the chord progression you do not have to play the same chord twice, so you can skip the last chord in the progression.
Replace Diminished: replaces the diminished chord with the dominant 7 chord (V7). They both have the same function and they can be substituted for each other.
I'll try to add more to it as I progress in my programming classes, below is a list of features I would like to eventually add to it. If you have any additional suggestions, or come across any bugs in the program please let me know.
Hope you enjoy it!
Future Features Wish List (in no particular order):
"Grayed out" features are features that have already been finished and added to the program.
- Choose the number or chords in the progression (select from a list)
- Button for using minor keys
- Button for always start on tonic (I) - (V1.01)
- Button for always end on start - (will use as many chords as it needs to until it gets back to the starting chord) - (V1.03)
- Button for replacing diminished chords with V7 chords - (V1.02)
- Option for using real chords after choosing a key OR using Roman Numerals
- Save progression in a text document
- Button for changing the probability of getting a particular extension (currently it is set at 20% for each extension)
- Better user interface
- Different modes for "beginner", "intermediate", and "advanced" that will change the layout of the user interface and will either hide or show some of the extensions and any more advanced features I add in.