Code Projects

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.

 Picture Chord EncyclopediaChord Chemistry Book

Here is an outline of the project plan.

Python Fretboard Project Milestones:
  1. Build code to display chords and scales
  2. Build database of chords with frets used for each string
  3. Simplify chords where needed so they can be fingered
  4. Write code which can find all possible chords
  5. Compare code generated chords with database. Add chord to database if not present.
  6. Write code which can predict how to finger given set of frets for a chord
  7. Compare code generated fingering with manually entered fingering. Tweek as needed.
After 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.