I am working on a Python program available on github called Fretboard
which helps guitarists learn more about music and how to navigate the
fretboard. Part of this work involves building a large database of
chords. Inspiration for this work came from a book called Picture Chord Encyclopedia as well as Ted Greene's book Chord Chemistry,
both with sevearl thousand chords. Currently I have around 6000
chords, however Jazz guitarist Steve Khan says in his book Chord Khancepts
that he has seen an encyclopedia of 80,000 guitar chords. My rough
estimates tells me this figure is not unreasonable for the number of
possibilities that are reachable with one hand. In some ways the
project of generating more chords is similar to finding more decimals
of pi - it seems like it could go on forever. Luckily for the database,
the human hand has some limitations in far it can strech and how you
can use your fingers on the instrument, so it cuts down a lot of
permutations of how you could play chords on the fretboard. You can
also limit the frets to 12 frets or maybe even 6-7 as the shapes begin
to repeat again.
Here is an outline of the project plan.
Python Fretboard Project Milestones:
the Python project is complete I will be creating an ebook and an iOS
app which will work with the chord database. Some minimal investigation
into ebook publishing and into iOS app has already occured, however for
now the focus will be writing Python code to automate fret generation
of chords and possible fingering of frets.
- Build code to display chords and scales
- Build database of chords with frets used for each string
- Simplify chords where needed so they can be fingered
- Write code which can find all possible chords
- Compare code generated chords with database. Add chord to database if not present.
- Write code which can predict how to finger given set of frets for a chord
- Compare code generated fingering with manually entered fingering. Tweek as needed.