Skip to content

Instantly share code, notes, and snippets.

@kennethreitz
Created September 6, 2018 12:41
Show Gist options
  • Star 7 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save kennethreitz/b363660145064fc330c206294cff92fc to your computer and use it in GitHub Desktop.
Save kennethreitz/b363660145064fc330c206294cff92fc to your computer and use it in GitHub Desktop.
$ cat t.py
from pprint import pprint
from pytheory import Tone, Fretboard, charts_for_fretboard


tones = (
    Tone.from_string("F2"),
    Tone.from_string("C3"),
    Tone.from_string("G3"),
    Tone.from_string("D4"),
    Tone.from_string("A5"),
    Tone.from_string("E5")
)

fretboard = Fretboard(tones=tones)

pprint(charts_for_fretboard(fretboard=Fretboard(tones=tones)))


$ python t.py                                                                                                                                                                   Thu Sep  6 08:40:10 2018
{'A': (4, 2, 2, 0, 0, 0),
 'A5': (4, 2, 2, 0, 0, 5),
 'A7': (4, 4, 2, 2, 0, 0),
 'A9': (1, 6, 2, 4, 0, 2),
 'Ab': (3, 1, 1, 1, 4, 4),
 'Ab5': (3, 1, 1, 6, 4, 4),
 'Ab7': (3, 3, 1, 1, 6, 4),
 'Ab9': (0, 5, 1, 3, None, 1),
 'Abdim': (3, 0, 1, 2, 3, 0),
 'Abm': (3, 0, 1, 6, 3, 4),
 'Abm6': (3, 0, 1, 0, 3, 4),
 'Abm7': (3, 0, 1, 1, 3, 4),
 'Abmaj': (3, None, 1, 6, 2, 4),
 'Abmaj7': (3, 3, 1, 1, 2, 4),
 'Adim': (0, 1, 2, 3, 0, 5),
 'Am': (4, 1, 2, None, 0, 5),
 'Am6': (4, 1, 2, 1, 0, 5),
 'Am7': (4, 1, 2, 2, 0, 0),
 'Amaj': (4, 0, 2, None, 0, 5),
 'Amaj7': (4, 0, 2, 2, 0, 0),
 'B': (1, 4, 4, 2, 2, 0),
 'B5': (6, 4, 4, 2, 2, 0),
 'B7': (1, 6, 4, 4, 2, 2),
 'B9': (3, None, 1, 6, 2, 4),
 'Bb': (0, 3, 3, 3, 6, 6),
 'Bb5': (5, 3, 3, 1, 1, 6),
 'Bb7': (0, 5, 3, 3, 1, 1),
 'Bb9': (2, None, 0, 5, 1, 3),
 'Bbdim': (1, 2, 3, 0, 5, 6),
 'Bbm': (5, 2, 3, 0, 1, 6),
 'Bbm6': (5, 2, 3, 0, 1, 0),
 'Bbm7': (0, 2, 3, 0, 5, 6),
 'Bbmaj': (5, 1, 3, None, 1, 6),
 'Bbmaj7': (0, 1, 3, 3, 4, 6),
 'Bdim': (2, 3, 0, 1, 2, 3),
 'Bm': (6, 3, 4, 1, 2, None),
 'Bm6': (0, 3, 4, 1, 2, 1),
 'Bm7': (1, 3, 4, 1, 2, 2),
 'Bmaj': (6, 2, 4, 0, 2, None),
 'Bmaj7': (1, 2, 4, 0, 2, 2),
 'C': (0, 0, 0, 3, 3, 3),
 'C5': (0, 0, 5, 3, 3, 1),
 'C7': (2, 0, 0, 5, 3, 3),
 'C9': (4, 0, 2, None, 0, 5),
 'Cdim': (3, 0, 1, 2, 3, 0),
 'Cm': (None, 0, 5, 2, 3, 0),
 'Cm6': (1, 0, 5, 2, 3, 0),
 'Cm7': (2, 0, 0, 2, 3, 0),
 'Cmaj': (None, 0, 5, 1, 3, None),
 'Cmaj7': (2, 0, 0, 1, 3, 3),
 'D': (2, 2, 0, 0, 0, 3),
 'D5': (2, 2, 0, 0, 5, 3),
 'D7': (4, 2, 2, 0, 0, 5),
 'D9': (6, 2, 4, 0, 2, None),
 'Db': (1, 1, 1, 4, 4, 4),
 'Db5': (1, 1, 6, 4, 4, 2),
 'Db7': (3, 1, 1, 6, 4, 4),
 'Db9': (5, 1, 3, None, 1, 6),
 'Dbdim': (0, 1, 2, 3, 0, 5),
 'Dbm': (0, 1, 6, 3, 4, 1),
 'Dbm6': (0, 1, 0, 3, 4, 1),
 'Dbm7': (0, 1, 1, 3, 4, 4),
 'Dbmaj': (None, 1, 6, 2, 4, 0),
 'Dbmaj7': (3, 1, 1, 2, 4, 0),
 'Ddim': (1, 2, 3, 0, 5, 6),
 'Dm': (1, 2, None, 0, 5, 2),
 'Dm6': (1, 2, 1, 0, 5, 2),
 'Dm7': (1, 2, 2, 0, 0, 2),
 'Dmaj': (0, 2, None, 0, 5, 1),
 'Dmaj7': (0, 2, 2, 0, 0, 5),
 'E': (4, 4, 2, 2, 0, 0),
 'E5': (4, 4, 2, 2, 0, 0),
 'E7': (6, 4, 4, 2, 2, 0),
 'E9': (None, 1, 6, 2, 4, 0),
 'Eb': (3, 3, 3, 6, 6, 6),
 'Eb5': (3, 3, 1, 1, 6, 4),
 'Eb7': (5, 3, 3, 1, 1, 6),
 'Eb9': (None, 0, 5, 1, 3, None),
 'Ebdim': (2, 3, 0, 1, 2, 3),
 'Ebm': (2, 3, 0, 1, 6, 3),
 'Ebm6': (2, 3, 0, 5, 0, 5),
 'Ebm7': (2, 3, 0, 5, 6, 6),
 'Ebmaj': (1, 3, None, 1, 6, 2),
 'Ebmaj7': (1, 3, 3, 4, 6, 6),
 'Edim': (3, 0, 1, 2, 3, 0),
 'Em': (3, 4, 1, 2, None, 0),
 'Em6': (3, 4, 1, 2, 1, 0),
 'Em7': (3, 4, 1, 2, 2, 0),
 'Emaj': (2, 4, 0, 2, None, 0),
 'Emaj7': (2, 4, 0, 2, 2, 0),
 'F': (0, 0, 3, 3, 3, 6),
 'F5': (0, 5, 3, 3, 1, 1),
 'F7': (0, 0, 5, 3, 3, 1),
 'F9': (0, 2, None, 0, 5, 1),
 'Fdim': (0, 1, 2, 3, 0, 5),
 'Fm': (0, 5, 2, 3, 0, 1),
 'Fm6': (0, 5, 2, 3, 0, 1),
 'Fm7': (0, 0, 2, 3, 0, 5),
 'Fmaj': (0, 5, 1, 3, None, 1),
 'Fmaj7': (0, 0, 1, 3, 3, 4),
 'G': (2, 0, 0, 0, 3, 3),
 'G5': (2, 0, 0, 5, 3, 3),
 'G7': (2, 2, 0, 0, 5, 3),
 'G9': (2, 4, 0, 2, None, 0),
 'Gb': (1, 1, 4, 4, 2, 2),
 'Gb5': (1, 6, 4, 4, 2, 2),
 'Gb7': (1, 1, 6, 4, 4, 2),
 'Gb9': (1, 3, None, 1, 6, 2),
 'Gbdim': (1, 2, 3, 0, 5, 6),
 'Gbm': (1, 6, 3, 4, 1, 2),
 'Gbm6': (1, 0, 3, 4, 1, 2),
 'Gbm7': (1, 1, 3, 4, 4, 6),
 'Gbmaj': (1, 6, 2, 4, 0, 2),
 'Gbmaj7': (1, 1, 2, 4, 0, 5),
 'Gdim': (2, 3, 0, 1, 2, 3),
 'Gm': (2, None, 0, 5, 2, 3),
 'Gm6': (2, 1, 0, 5, 2, 3),
 'Gm7': (2, 2, 0, 0, 2, 3),
 'Gmaj': (2, None, 0, 5, 1, 3),
 'Gmaj7': (2, 2, 0, 0, 5, 6)}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment