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 my tutorial on music theory basics
HERE . 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.
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 the Harmonic Conjugations, which are explained in my tutorial
HERE. This guarantees that the flow from one chord to the next always sounds good musically (like the I IV V progression).
No theory is involved in the addition of the chord extensions however, the extensions are simply added at random if the button is pressed. So if you have several of the extensions enabled you may get some odd 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.