-
Notifications
You must be signed in to change notification settings - Fork 0
/
chords_guitar.tex
102 lines (87 loc) · 2.59 KB
/
chords_guitar.tex
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
%http://public.vexflow.com/vexchords/
% Guitar Chords section
\newcommand\drawguitarchord[2][]{%
\edef\chord{#2}%
\begin{tikzpicture}[x=1.3ex,y=1.3ex,line cap=round,line width=.4pt,
baseline=(current bounding box.center),#1]
\def\w{4.5/6}
\draw[line width=.6pt] (1*\w,0) -- (6*\w,0);
\foreach \d in {1,...,4}{\draw (1*\w,-\d) -- (6*\w,-\d);}
\foreach \d[count=\p] in \chord {
\draw (\p*\w,0) -- (\p*\w,-4.5);
\ifdefstring{\d}{x}{
% \draw (\p*\w,.25) +(-.125,-.125) -- +(.125,.125)
% +(-.125,.125) -- +(.125,-.125);
\draw (\p*\w,.25) node[cross=.325ex] {};
}{
\ifdefstring{\d}{0}{
\draw (\p*\w,.25) circle(.25); % opened string
}{
\ifdefstring{\d}{-}{
% do nothing
}{
\fill (\p*\w,.5-1*\d) circle(.25);
}
}
}
}
\path[use as bounding box] (0.5,.5) rectangle (4.5,-5);
\end{tikzpicture}%
}
\makeatletter
\newcommand\defineguitarchord[2]{%
\csdef{@guitarchord@#1}{\drawguitarchord{#2}}%
}
\newcommand\defineguitarchordALT[2]{%
\csdef{@guitarchord@#2}{\csuse{@guitarchord@#1}}%
}
\newcommand\guitarchord[1]{%
\ifcsdef{@guitarchord@#1}{%
\csuse{@guitarchord@#1}%
}{%
\GenericError{}{Undefined guitar chord '#1'}{}{}%
}%
}
\makeatother
% Open Chords
\defineguitarchord{C}{-,3,2,0,1,0}
\defineguitarchord{D}{x,x,0,2,3,2}
\defineguitarchord{E}{0,2,2,1,0,0}
\defineguitarchord{G}{3,2,0,0,3,3}
\defineguitarchord{A}{x,0,2,2,2,0}
\defineguitarchord{Dm}{x,x,0,2,3,1}
\defineguitarchord{Em}{0,2,2,0,0,0}
\defineguitarchord{Am}{x,0,2,2,1,0}
\defineguitarchord{C7}{x,3,2,3,1,0}
\defineguitarchord{D7}{x,x,0,2,1,2}
\defineguitarchord{E7}{0,2,0,1,3,0}
\defineguitarchord{G7}{3,2,0,0,0,1}
\defineguitarchord{A7}{x,0,2,0,2,0}
\defineguitarchord{Dm7}{x,x,0,2,1,1}
\defineguitarchord{Em7}{0,2,2,0,3,0}
\defineguitarchord{Am7}{x,0,2,0,1,0}
%
\defineguitarchord{D/F+}{2,0,0,2,3,2}
\defineguitarchord{C9}{x,3,2,3,3,0}
% F Chords (E Shape)
\defineguitarchord{F}{1,3,3,2,1,1}
\defineguitarchord{Fm}{1,3,3,1,1,1}
\defineguitarchord{F7}{1,3,1,2,4,1}
\defineguitarchord{Fm7}{1,3,1,1,4,1}
\defineguitarchord{FMaj7}{1,x,2,2,1,x}
\defineguitarchordALT{F}{FMaj}
\defineguitarchordALT{F}{Fmaj}
%\defineguitarchordALT{FMaj7}{Fmaj7}
\defineguitarchordALT{Am}{Ami}
\defineguitarchordALT{Em}{Emi}
\defineguitarchord{Bm}{x,x,4,4,3,2}
\defineguitarchord{B}{x,x,4,4,4,2}
\defineguitarchord{Gb}{2,4,4,3,2,2}
\defineguitarchord{As7}{x,1,3,1,3,1}
\defineguitarchord{Dsus4}{x,x,0,2,3,3}
\defineguitarchord{Dsus2}{x,x,0,2,3,0}
\defineguitarchord{Fmaj7}{x,x,3,2,1,0}
\defineguitarchord{Asus2}{x,0,2,2,0,0}
\defineguitarchord{Aaddb9}{x,0,2,3,2,0}
\defineguitarchord{Fsus2}{x,3,3,0,1,x}
\defineguitarchord{B7}{x,2,1,2,0,2}