Logo Computer scientist,
engineer, and educator
• Software

ChordTool logo

ChordTool for Android

What is this?

ChordTool is a simple application for Android mobile handsets which displaying the relationships between chords in various keys and scales. It is designed for small displays, and should run on more-or-less any Android device. It can play the notes of scales and chords if the device has MIDI playback capabilities (most have).

In its simplest form, ChordTool behaves like a guitarist's 'chord wheel', except in that it is not wheel-shaped. In this mode of operation you can select the key (major or minor), and the program displays the triad chords that are diatonic to that key (that is, triads based on notes found only in the key). Musicians will be aware that tonal music in the key of C major will emphasize the harmonies of C major, the subdominant F major, and the dominant G major, and perhaps D minor and some others. But most jobbing musicians would probably not be quite so quick with the key of, say, Ab major. My experience is that minor keys come even less readily to mind and, worse, to the fingers.

ChordTool will also display the notes that make up many chords, including obscure ones. Given the name of the chord, it can find what keys the chord will be diatonic in (if any).


ChordTool isn't ever going to be on the Android Market (or whatever it's called these days). To install, download the APK file (see below), copy it to the device, and install with a file manager like Astro.


The home screen, showing the main functions available

List of keys, showing the number of sharps or flats int the conventional key signature. From this list, you can navigate to...

...the main triad chords in the selected key, and their relationships (I, II, iv, etc). From here you can show the details of a specific chord, or navigate to...

...the complete list of triads in a specific key

The chord info page, which shows the notes that make up the chord, in both the strict and expedient forms. From here you can find which keys the chord forms a triad in, or play the notes (hardware permitting)

ChordTool also shows scales, and can play them (again, hardware permitting)

Theoretical issues

When displaying chords in a particular key signature, ChordTool only displays diatonic, triadic chords. Although, for example, the chord D7 appears often enough in music in the key of C major, it's an interloper, usually from G major. If we start letting these foreign chords in, where do we stop? There's only a certain amount of room on screen, after all.

Similarly, although C major 7th (C-E-G-B) is strictly diatonic to the key of C major, it isn't displayed, because it's not a triad. Again, we have to draw the line somewhere. In minor keys it's hard to find room on screen even for the strict diatonic triads, let alone other things. One day I might produce a version of ChordTool specifically for tablets, which will accomodate more information on screen. The problem, as always, is that this could well make the display overwhelmingly confusing.

ChordTool takes a broad view what 'diatonic' means. In major keys there's usually no disagreement, but there's scope to argue in minor keys. By a broad view I mean that we assume that the notes of the harmomic minor, and the ascending and descending melodic minor, are available to form chords from. This is certainly the view that Bach, Handel, and Mozart took, although arguably the results don't always please modern ears. At any rate, you'll find far more chords listed as available in A minor than C major, despite the identical key signature, because A minor has two extra notes available - F# and G# — that ChordTool does not consider diatonic to the major key.

Because many musicians have difficulty getting their heads around the idea of 'Fb' as a note, in some cases ChordTool will display 'expedient' notes as well as strict ones. Expedient notes have no double-sharps or double-flats, and unusual notes like Fb are converted to the enharmonic equivalent common notes (E, in this case). Of course, these chords are likely to be 'wrong' in the theoretical sense, but most musicians find it much quicker to locate the notes. For example, I would argue that expressing C dim7 as C-Eb-Gb-A is more convenient than C-Eb-Gb-Abb. In fact, I suspect that most musicians think of C dim7 as C-Eb-F#-A, but there's no hard-and-fast rlule for figuring out when, for example, F# might be preferable to Gb.

Notes and limitations

Most importantly: ChordTool is not equally-tempered! Except in a few cases where you can instruct it otherwise, it will asume that, for example, G# is a different note from Ab. It understands the chord C# major as consisting of the notes C#, E#, and G#, even though on a modern piano you'd play E# as the white note you'd most often think of as 'F'. When it comes to analysing the work of seious composers, this strictness is usually pretty helpful, because most likely the composer would use the 'correct' note spellings even when composing for equally-tempered instruments.

Spellings of chords containing double-flats and double-sharps can be awkward. ChordTool tries to maintain 'correct' use of double-sharps and double-flats where there is an obvious correct approach, that isn't actually bizarre. For example, the diminished triad on the leading note in the key of G# minor is F## dim, not G dim. You might prefer to see 'G', but F## is undeniably correct. However, if we expand the triad G## we get G##, C, and Eb. This is bad because there are four scale steps between G(##) and C, and really there should be three. But the strictly-correct approach to constructing a minor third would make the triad G##, Bb##, and D#. This is a 'real' triad because it's got the scale steps G-B-D, but what sort of note is Bb##? Strictness has to come to a stop somewhere, and in ChordTool it comes to a stop at the point where we need sharps and flats in the _same_ note. Sharps and flats in the same chord is non-ideal, but we can get used to that.

In practice, considerations like the above are only relevant if you're working in very unusual keys like A# minor.

On Android handsets, the sharp and flat signs seem to be padded with whitespace, which makes double sharps and double flats look ugly. There are, in principle, unicode symbols for double sharp and double flat, but it isn't safe to assume that the Android fonts include them.

The user interface is designed to be workable on small, low-resolution screen. It should work on better screens, but may not fill all the space available. Sorry, the user interface is in English only, and it's likely to remain that way.

On the handsets I've tried, it's hard to set the playback volume of the sound that ChordTool generates. The problem is that most handsets have only one volume control, and Android guesses what you actually want to adjust with it. Unless a sound is actually playing, it will probably guess that you want to adjust the ringer volume, not playback volume. It might be easier to adjust the sound volume while playing a longer audio track in a different media player, because in those circumstances Android seems to guess better when you press the volume buttons.

You might wonder why some major scales have both sharpened and flatted notes. Because they do, that's why. If you see this in ChordTool it's not (I hope) an error. This observation only applies to purely notional, unused, scales like Ebb. The note a whole step above B, for example is C#, not Db, even if we got to the B via a flattened note. That's just a consequence of the theoretical point that says there should be one note of each name in a major or conventional minor scale. Just because ChordTool can display these scales, there's no particular reason to think you'll ever encounter them in practice.

Concerning 'expedient notes', you might notice that, for example, the expedient notes of the scale of Cb not the same as those of B. This is because it's the individual notes that are converted to expedient spellings, not the whole scale. 'B' is the expedient form of 'Cb', but the next note in the scale of Cb, Db, is a perfectly understandble note — the program has no grounds on which to convert it to a C#. If you want to see the scale of B, select 'B' from the list — that's what it's there fore


Android APK file
Source code
Copyright © 1994-2013 Kevin Boone. Updated Feb 08 2013