Theo's Chord Generator – Documentation

This tool displays chord position diagrams for fretboard-based stringed instruments, such as the banjo, mandolin, guitar etc. While pre-made chord diagrams are very easy to find for common instruments and tunings, this tool allows you to find chords for any tuning, since it calculates and generates the chord positions dynamically.  I originally wrote the chord generator for the banjo, because I couldn't find chord diagrams for a lot of the instrument's more esoteric tunings. However, most fretted instruments are supported.

If you have found this document as the result of a search, you may wish to see the Chord Generator itself first. If you're lucky enough to be in South Yorkshire and want some clawhammer banjo lessons, check out my lessons page.

Help to support the Chord Generator

If you use the Chord Generator regularly and would like to fund further improvements, please consider making a donation. Any contributions would be gratefully received!

More Tools

If you are interested in the Chord Generator, you may wish to see some of my other music-related tools. These include:

Using The Chord Generator

Instrument &Tuning

The Chord Generator includes presets for several instruments and their respective tunings. This is not to say it is limited to those, however, as any tuning can be entered in the Tuning box. When you've entered the tuning and selected the parameters for the chord, simply click Go! to load your chord(s.)

For the most part, it doesn't matter which instrument you have selected, because the important part is the tuning.  There is a special case when it comes to 5-string banjo tunings; due to the special nature of the banjo's 5th string, it's not usually used in chords – or rather, it's not fretted as part of a chord. So, if it's tuned to part of your current chord, it'll ring out as part of it. If not, it will act as a drone and establish the tonality of the piece as a whole – since it's usually tuned to the root, 5th or 3rd of the current key.

Therefore, it doesn't matter whether you enter a,E,A,C#,E, c#,E,A,C#,E or simply E,A,C#,E, your chord will be the same since the chord generator simply drops the 5th string. If you're lucky enough to be in possession of a banjo with an extra bass string, you can still use the chord generator - provided you enter all the strings and put the drone string in lower case so the chord generator knows that it's dealing with 5 chording strings and not either 4 strings and a drone or 6 playable strings. The same applies to banjos with more than 6 strings. For example: g,G,D,G,B,D

An alternate method of notating tunings is to use the intervals between the strings rather than the absolute notes. You only need the note of the left hand (bass on a guitar, thumb string on a banjo) string, plus the intervals, in order to enter the tuning. So, the banjo's Open-G tuning would be g,7,5,4,3, and to turn it into an A tuning you'd simply enter a,7,5,4,3 and to turn it into the old minstrel E tuning, you'd enter e,7,5,4,3. The guitar's standard tuning would be E,5,5,5,4,5. The tuning box also accepts this notation.

If you have a left handed instrument, simply enter the tuning as normal and select Left from the Handed selection area.  If you are using a capo, you can use the Capo menu to select upon which fret you have got it, and the chord generator will then generate only chords playable below the capo.

Chord and Quality

The Chord menu allows you to choose a note from the chromatic scale as the root for your chord (and scale, unless your're in Single Chord or All Qualities mode.)  Of course, the non-natural notes have two names (e.g. F# / Gb.) There is a fairly solid rule as to what the note should be called in the context of diatonic scales, however (see below.)

In Single Chord mode, only the chord which you have selected will be shown, and you will also be able to select the Chord Quality (e.g. Major, Minor, Augmented, etc.) The other modes are either Diatonic scales (Major, Minor etc.) or special (Chromatic (All Chords), All Qualities); and, in these modes, you can't select the chord quality.

In All Qualities mode, all the types of chord which the chord generator supports will be shown, rooted on the note you select. In Chromatic (All Chords) mode, all of the Major, minor and Dominant 7th chords are displayed (arguably the most common chords played in popular, folk music and classical genres.) If you want to see other kinds of chord, though, you will still need to go to single chord mode.

When using Diatonic scales, the scale selected will dictate the chords available - for example, you could not select Gm as your root chord if you were using a major scale such as the Ionian or Mixolydian, since they do no include a Bb as part of the scale. And vice versa, you could not select the G Major chord if you were using a scale with a flattened 3rd. Thus, the Chord Quality box will be disabled when not in single chord mode.


The Scale option allows you to pick from which scale your chords will be chosen. This will also decide the quality of the root chord (major, minor or diminished.) If you're unsure that this is the behaviour you want, it might make more sense to use the Chromatic (All Chords) or Single Chord options to manually select the chord you want. If, on the other hand, you wish to harmonise with a particular key, one of the diatonic scales (or modes) may be more useful to quickly find appropriate chords.

If you pick a tuning from the Some Tunings list, the key and scale will default the one for which that tuning is usually used. Guitar standard tuning is an obvious example of a tuning designed for (at least theoretically) playing in any key, however this is not usually the case with, for instance, many of the more esoteric banjo tunings. These have usually been settled upon to play in a certain key, whilst evoking a mood or atmosphere though the use of open string drones. It's a moot point as to whether these tunings were ever really designed for playing full chords in, but, since that's the purpose of this tool, they are included. For an exhaustive list, see here.

Scale Diagrams

If Show Scale is checked then the chord diagrams will be followed by a scale diagram. This shows the positions of all the notes in the current scale as found in your selected tuning across the entire fretboard (down to the 12th fret, after which the pattern repeats!)

The colour of the circles represent the note's position in the scale, as in standard chord diagrams. Except, of course, that this is the note's position relative to the scale root, as opposed to the root of the selected chord. The yellow notes indicate that this note matches the first note on the next string. This does not necessarily mean the open string. If the open note of a string is in red, it means this is NOT part of the scale, and you should avoid it; for example the major 3rd, C#, in the minor Dorian scale pictured to the right.

Drawing Manual Chord Positions

If you already know the fingerings for a chord (whether or not you know what the chord is), you can use the Manual button to switch into Manual Chord Position mode. Here, you can enter a set of fret positions in order such as 2,0,1,2, and click Go to draw that chord in the current tuning. If the Chord Generator can establish what the chord actually is, then it will show its name too.

Finding Open Chords

Many banjo tunings are Open Tunings; the strings will play some specific chord without needing to be fretted. Pressing the Open button will attempt to find the open chord for your selected tuning if it exists.

Building Custom Chord Sheets

If you want to make a sheet containing specific chords for one or more instruments and tunings, you can use the Custom Chord Sheet button. This will open a pane at the right hand side of the screen, into which you can place any chords from the main pane by clicking on them. You can drag chords around in the right hand pane to re-arrange them, or double click them (or drag them outside the pane) to remove them.

When you click on print, it is the contents of this pane which will be printed, rather than the contents of the central pane, as normally happens. If you try and navigate away from the page whilst you are editing a custom chord sheet, you will receive a warning, since all changes will be lost upon leaving the page.

If you wish to share your custom chord sheet, you can use the Share button. This will give you a (rather long) link which you can copy and paste to let other people load the same custom chords.

Printing Chords

Clicking the Print button will prompt you to print a page of chords. Please make sure you have chosen your Scale and Diatonic Chords correctly if you are printing a whole sheet of chords; that's a better use of paper, but you don't want to end up with the wrong set of chords.

You can also use your browser's standard Print... function – it WILL print only the chords, not the whole interface.

Linking To and Bookmarking Chords

Due to the way the chord generator is programmed, nearly all of the functionality takes place behind the scenes, and the new chords are generated and then loaded without having to submit a form or refresh the page. Because of this, however, if the page is reloaded then it will revert to the default settings, and any chords and tunings specified will be lost.

If you wish to link to a specific set or chords, and/or add it to your browser bookmarks so that it's easy to get back to it in the future, you can use the Static Link, which appears on the main interface below the intro text. This is a a special link which is dynamically updated to reflect the current parameters specified in the interface.

Advanced Options

Fret Offset allows you to set a fret below which all notes of the chord should fall.––This is effectively quite similar the capo option, except it will not draw the capo and the notes which it would "fret". It could be useful for generating closed position chords and inversions up the neck.

The rationale behind the Prefer # or b Keys option is documented in the Enharmonic Notes section.––Should you want to play in normally inaccessible keys such as D# Major (complete with its F## and C##), this is the option to use.––

The Random option allows you to select what is randomized when you click the Random button. The default is to load a random chord in the current tuning, however you may also wish to select a random tuning on the current instrument, or evene select a random instrument each time the button is clicked.

A relation of the previous option, Fix Enharmonic (which is turned on by default) allows you to disable any substitution of enharmonic notes, even when this yields ugly scales such as G, A, A#, C, D, D#, E, F.

The Reverse Left-Handed option allows you to toggle whether a manual chord position is entered in the same way in which the diagrams are displayed (i.e. the reverse of right-handed) or not. This may or may not be intuitive, since in virtually any standard banjo literature, the tunings themselves are listed in right handed fashion. So, for example, a C chord in Open G tuning on the banjo would either be entered (standard) 2,0,1,2 or (reversed) 2,1,0,2.

Music Theory and Chords


How The Chords Are Constructed

Usually, a chord consists of a triad (3 notes.) A Major chord triad is the root (the note itself), the 3rd and the 5th. e.g. C = C,E,G. When more than 3 strings are used, you double up one of the notes. e.g. Open-G (gDGBD), which yields a G chord when unfretted.

A Minor chord is a triad with a Minor 3rd (the note flatted.) e.g. Dm = D,F,A.

A 7th chord consists of a triad plus the seventh note of the scale on which the chord is based. The most common 7th chord is the Dominant 7th, which consists of a Major triad and a flattened 7th, e.g. G7 = G, B, D, F. There are also the Major and Minor 7th chords: Dmaj7 = D, F#, A, C#, Em7 = E, G, B, D.

A Diminished Chord has also has minor 3rd but the 5th is also flatted, e.g. Cdim = C, Eb, Gb.

An Augmented Chord is the triad with the 5th raised, e.g. Baug = B, D#, G.

A Suspended chord is a chord with the 3rd raised to a 4th (sus4) or lowered to a 2nd (sus2.) e.g. Dsus2 / Asus4 = D,E,A & Gsus4 / Csus2 = G,C,D, Dsus4 / Gsus2 = G,A,D etc.

A 5 chord is the triad but without the 3rd (a dyad.) e.g. D5 = D,A. These are also known as power chords.

Enharmonic Notes

Unless you are playing in only the natural scales (C Major / A Minor / D Dorian etc.), your scale and chords will include accidentals (# or b notes.) Depending upon the context, the same note must be given different names. For example, G Aeolian (or Melodic Minor) includes the notes G, A, Bb, C, D, Eb and F. Technically, they could be written as G, A, A#, C, D, D# and F. But you'd notice that this looks a bit odd; you have two notes called A and two called D, whilst B and E are absent.  On the other hand, the same appear as sharps in the key of B Major (B, C#, D#, E, F#, G# and A#.) If they were were flats, the scale would be a rather unreadable B, Db, Eb, E, Gb, Ab, Bb.

Then, there is the case of scales rooted on a sharp of flat. These scales could actually legitimately be rendered in either sharp or flat form, e.g.: C# Major (C#, D#, E#, F#, G#, A#, B#), versus Db Major (Db, Eb, F, Gb, Ab, Bb and C.) In this case, the latter is the most commonly used form because, when written out in sheet music, it contains fewer accidentals.  This is thus the version of the key which the chord generator will default to unless the Prefer # or b Keys option (found in advanced options...) is set.

In Chromatic (All Chords) mode, every chord name will be calculated as if that chord were the root of its own scale, and so you will see various incarnations of the various accidentals depending on which chord they appear in. For instance the E Major chord will include a G#, while the Db Major chord will include an Ab. This can result in a few anomolies, such as the fact that even if you select A# as your root, you will see C rather than B#.

The correct note names do not need to be calculated by using any specific scale as reference. We simply need to ensure the each (diatonic) scale contains every letter and that each letter appears once and once only. With this rule some accidentals become flats and become sharps. If you're confused just try picking a load of scales (both major and minor), and you should see the logic in the names assigned to the keynote as well as the other 6 notes.  Should you wish to see each note in its completely unaltered form, you can untick the Fix Enharmonic option in advanced options. This is not the recommended way to display the chords, though, and will probably completely bewilder anyone who has studied music theory.

Troubleshooting & Advanced Use

The chord generator should work in any standards compliant browser and even Internet Explorer. The interface functionality is only available with JavaScript enabled – if you don't know what that means then it probably is enabled. If you can't/won't enable JavaScript you can still generate the chords by specifying them in the URL (see below.)

URL Parameters

All parameters are passed to the page after the address. The first one must be preceded by a ?, after which they should be separated with &.

m=[c,i] - to make the chord generator load a single chord diagram rather than the whole page, you can append m=c to the URL.


alt=[n]. Select the alternate chord to display, so that you can load a single image for an alt. chord.

random. Picks a random chord and instrument. pick a chord, any chord.

There are several undocumented switches too. Some of these are really just for my own debugging, but some may be useful to truly fine-tune the way that your chord is generated or displayed. They are not for the casual user, however, and I figure if you want to know what they are it's pretty simple to find them in the source code. If you don't know how to do that then they've probably not got much that you'll want or need.