summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/gtrcrd
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
committerNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
commite0c6872cf40896c7be36b11dcc744620f10adf1d (patch)
tree60335e10d2f4354b0674ec22d7b53f0f8abee672 /macros/latex/contrib/gtrcrd
Initial commit
Diffstat (limited to 'macros/latex/contrib/gtrcrd')
-rw-r--r--macros/latex/contrib/gtrcrd/README32
-rw-r--r--macros/latex/contrib/gtrcrd/gtrcrd-doc.pdfbin0 -> 156831 bytes
-rw-r--r--macros/latex/contrib/gtrcrd/gtrcrd-doc.tex141
-rw-r--r--macros/latex/contrib/gtrcrd/gtrcrd.sty881
4 files changed, 1054 insertions, 0 deletions
diff --git a/macros/latex/contrib/gtrcrd/README b/macros/latex/contrib/gtrcrd/README
new file mode 100644
index 0000000000..a34dff1a3c
--- /dev/null
+++ b/macros/latex/contrib/gtrcrd/README
@@ -0,0 +1,32 @@
+Package name: gtrcrd (Guitar chords)
+Author: Riccardo Bresciani - gtrcrd@tex.nopkoguo.it
+
+Copyright 2012-2013 Riccardo Bresciani
+
+Description: This package is suitable to add chords to lyrics.
+The main advantages of using this package is that chords are
+written before the text they refer to and LaTeX takes care of
+typesetting them above the lyrics in the right place: thanks to
+this we avoid the task of correctly aligning chords above the
+lyrics, which is tedious in the case of a monospaced font and
+absolutely non-trivial in the case of variable-width fonts.
+
+This work may be distributed and/or modified under the
+conditions of the LaTeX Project Public License, either
+version 1.3c of this license or (at your option) any
+later version.
+The latest version of the license is in
+ http://www.latex-project.org/lppl.txt
+and version 1.3c or later is part of all distributions of LaTeX
+version 2005/12/01 or later.
+
+This work consists of the files: README, gtrcrd.sty,
+gtrcrd-doc.tex, gtrcrd-doc.pdf
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+2013/12/24: v1.1
+- added \chordsbelow
+- added \neolatin
+
+2012/01/15: v1.0 \ No newline at end of file
diff --git a/macros/latex/contrib/gtrcrd/gtrcrd-doc.pdf b/macros/latex/contrib/gtrcrd/gtrcrd-doc.pdf
new file mode 100644
index 0000000000..f75c9273ca
--- /dev/null
+++ b/macros/latex/contrib/gtrcrd/gtrcrd-doc.pdf
Binary files differ
diff --git a/macros/latex/contrib/gtrcrd/gtrcrd-doc.tex b/macros/latex/contrib/gtrcrd/gtrcrd-doc.tex
new file mode 100644
index 0000000000..d0d31ded6e
--- /dev/null
+++ b/macros/latex/contrib/gtrcrd/gtrcrd-doc.tex
@@ -0,0 +1,141 @@
+\documentclass[green,a4paper,oneside,openany,noparindent,noparskip,article,nomatter]{bookest}
+
+\usepackage{gtrcrd}
+\usepackage{hyperref}
+
+\setleftmark{}
+\setrightmark{}
+
+%pdfLaTeX
+\hypersetup{
+pdftitle={gtrcrd},
+pdfsubject={A LaTeX package which is suitable to add chords to lyrics.},
+pdfauthor={Riccardo Bresciani},
+pdfkeywords={gtrcrd, LaTeX, chords, lyrics, TeX},
+pdfstartview=FitV,
+%colorlinks
+}
+
+
+% Aliases
+\newcommand{\ie}{\emph{i.e.} }
+
+\author{Riccardo Bresciani}
+\title{gtrcrd\hfill{\small\href{http://tex.nopkoguo.it/gtrcrd}{http://tex.nopkoguo.it/gtrcrd}}}
+\newcommand{\belowLine}{{\normalsize Version 1.1 --- \today}}
+
+\makeatletter
+\renewcommand{\maketitle}{\thispagestyle{plain}{\Huge\textbf{\colorB\@title}\Large\\\vspace{2ex}
+\@author{\colorA\hrule}\vspace{1ex}\belowLine\\\vspace{2ex}}}
+\makeatother
+
+ \geometry{
+ hmargin=2.6cm,
+ vmargin={3.5cm,3cm},
+ bindingoffset=0mm,
+ columnsep=20pt
+ }
+
+ \pagestyle{plain}
+
+\begin{document}
+
+\maketitle
+
+\begin{abstract}{Brief description of the package:}
+This package is suitable to add chords to lyrics. The main advantages of using this package is that chords are written before the text they refer to and \LaTeX\ takes care of typesetting them above the lyrics in the right place: thanks to this we avoid the task of correctly aligning chords above the lyrics, which is tedious in the case of a monospaced font and absolutely non-trivial in the case of variable-width fonts.
+\end{abstract}
+
+\artsection{Usage}
+\artsubsection{Chords}
+
+The following commands typeset a chord above a given text:
+
+\begin{center}
+\ttfamily \textbackslash\A A \quad\textbackslash\B B \quad\textbackslash\C C \quad\textbackslash\D D \quad\textbackslash\E E \quad\textbackslash\F F \quad\textbackslash\G G
+
+\textbackslash\Ab Ab \quad\textbackslash\Bb Bb \quad\textbackslash\Cb Cb \quad\textbackslash\Db Db \quad\textbackslash\Eb Eb \quad\textbackslash\Fb Fb \quad\textbackslash\Gb Gb
+
+\textbackslash\As As \quad\textbackslash\Bs Bs \quad\textbackslash\Cs Cs \quad\textbackslash\Ds Ds \quad\textbackslash\Es Es \quad\textbackslash\Fs Fs \quad\textbackslash\Gs Gs
+
+\textbackslash\Am Am \quad\textbackslash\Bm Bm \quad\textbackslash\Cm Cm \quad\textbackslash\Dm Dm \quad\textbackslash\Em Em \quad\textbackslash\Fm Fm \quad\textbackslash\Gm Gm
+
+\textbackslash\Abm Abm \quad\textbackslash\Bbm Bbm \quad\textbackslash\Cbm Cbm \quad\textbackslash\Dbm Dbm \quad\textbackslash\Ebm Ebm \quad\textbackslash\Fbm Fbm \quad\textbackslash\Gbm Gbm
+
+\textbackslash\Asm Asm \quad\textbackslash\Bsm Bsm \quad\textbackslash\Csm Csm \quad\textbackslash\Dsm Dsm \quad\textbackslash\Esm Esm \quad\textbackslash\Fsm Fsm \quad\textbackslash\Gsm Gsm
+\end{center}
+
+For example \texttt{\textbackslash Bb\{text\}} produces the following: \Bb{text}.
+
+\ppar
+Each command takes an optional argument, in order to allow users to typeset variations of the above chords.
+
+For example \texttt{\textbackslash G[7sus4]\{text\}} produces the following: \G[7sus4]{text}.
+
+\artsubsubsection{An Example: London Bridge is Falling Down}
+
+\begin{tabular}{p{6cm}l}
+\G London bridge is falling down &\texttt{\textbackslash G London bridge is falling down}\\
+
+\D[7] Falling down, \G falling down. &\texttt{\textbackslash D[7] Falling down, \textbackslash G falling down.}\\
+
+\G London bridge is falling down, &\texttt{\textbackslash G London bridge is falling down,}\\
+
+\D my fair \G lady. &\texttt{\textbackslash D my fair \textbackslash G lady.}
+\end{tabular}
+
+\artsubsection{Different notations}\label{notations}
+
+By default chords are typeset in English notation above the text. The default behaviour can be altered via the following commands:
+
+\begin{itemize}
+ \item \texttt{\textbackslash chordsbelow} switches to typesetting chords below the text --- for example \texttt{\textbackslash Cs\{text\}} outputs {\chordsbelow \Cs{text}} instead of \Cs{text};
+ \item \texttt{\textbackslash neolatin} switches to the neo-latin notation (\emph{i.e.} Do-Re-Mi-Fa-Sol-La-Si) --- for example \texttt{\textbackslash As\{text\}} outputs {\neolatin \As{text}} instead of \As{text}.
+\end{itemize}
+
+
+
+\artsubsection{Operations on chords}\label{opts}
+
+It is sometimes useful to transpose a song by a certain number of half-tones. This package provides the following commands to do this:
+
+\begin{center}\ttfamily
+\begin{tabular}{p{4cm}p{4cm}p{4cm}}
+
+\textbackslash transposeOneUp &\textbackslash transposeTwoUp &\textbackslash transposeThreeUp\\
+
+\textbackslash transposeFourUp &\textbackslash transposeFiveUp &\textbackslash transposeSixUp\\
+
+\textbackslash transposeOneDown &\textbackslash transposeTwoDown &\textbackslash transposeThreeDown\\
+
+\textbackslash transposeFourDown &\textbackslash transposeFiveDown &\textbackslash transposeSixDown
+\end{tabular}
+\end{center}
+
+Things can be brought back to normal via the command \texttt{\textbackslash notranspose}.
+
+\ppar
+Another possibility is to convert all chords with a $\flat$ to the corresponding chords with a $\sharp$ or vice-versa: this is achieved with the commands \texttt{\textbackslash sharponly} and \texttt{\textbackslash flatonly}.
+
+\ppar
+Finally it is possible to avoid all occurrences of E$\sharp$, F$\flat$, B$\sharp$ and C$\flat$ and replace them with F, E, C and B respectively by using the command \texttt{\textbackslash normalize}.
+
+\artsubsection{Package Options}
+All commands from \S\S\ref{notations},\ref{opts} can be run at the beginning of the document by using the desired ones as package options --- the initial backslash has to be omitted of course!
+
+\artsubsection{Changing the Way Things Look}
+The line spacing in presence of a chord is controlled by the length \texttt{\textbackslash crdheight} --- the default setting is \texttt{3ex}.
+
+\ppar
+The font of the chord is controlled by the command \texttt{\textbackslash crdfont} --- the default setting is \texttt{\textbackslash footnotesize \textbackslash sffamily}.
+
+\ppar
+All chords are specific instances of the command \texttt{\textbackslash CHORD}, which takes two mandatory arguments and an optional one: the first argument is concatenated to the optional argument (respectively the chord and its variation) and is typeset above the text given as second argument.
+
+It is possible to change the way a chord is typeset by redefining this command --- and this does not compromise the functionality of the commands in \S\ref{opts} as long as the meaning of the arguments of \texttt{\textbackslash CHORD} is not changed.
+
+\artsection{Contacts}
+If you have comments or want to report any bug, please send a mail to \textsl{\href{mailto:gtrcrd@tex.nopkoguo.net}{gtrcrd@tex.nopkoguo.it}}.
+
+
+\end{document} \ No newline at end of file
diff --git a/macros/latex/contrib/gtrcrd/gtrcrd.sty b/macros/latex/contrib/gtrcrd/gtrcrd.sty
new file mode 100644
index 0000000000..e95c2ebdbd
--- /dev/null
+++ b/macros/latex/contrib/gtrcrd/gtrcrd.sty
@@ -0,0 +1,881 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% %%
+%% Package name: gtrcrd %%
+%% Author: Riccardo Bresciani - gtrcrd@tex.nopkoguo.it %%
+%% %%
+%% Copyright 2012-2013 Riccardo Bresciani %%
+%% %%
+%% Description: This package is suitable to add chords to lyrics. %%
+%% The main advantages of using this package is that chords are %%
+%% written before the text they refer to and LaTeX takes care of %%
+%% typesetting them above the lyrics in the right place: thanks to %%
+%% this we avoid the task of correctly aligning chords above the %%
+%% lyrics, which is tedious in the case of a monospaced font and %%
+%% absolutely non-trivial in the case of variable-width fonts. %%
+%% %%
+%% This work may be distributed and/or modified under the %%
+%% conditions of the LaTeX Project Public License, either %%
+%% version 1.3c of this license or (at your option) any %%
+%% later version. %%
+%% The latest version of the license is in %%
+%% http://www.latex-project.org/lppl.txt %%
+%% and version 1.3c or later is part of all distributions of LaTeX %%
+%% version 2005/12/01 or later. %%
+%% %%
+%% This work consists of the files: README, gtrcrd.sty, %%
+%% gtrcrd-doc.tex, gtrcrd-doc.pdf %%
+%% %%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\ProvidesPackage{gtrcrd} [2013/12/24 v1.1 Guitar chords]
+
+\newlength{\wordwidth}
+\newlength{\crdwidth}
+\newlength{\crdheight}
+\setlength{\crdheight}{3ex}
+
+\newcommand{\crdfont}{\footnotesize \sffamily}
+
+\newcommand{\CHORD}[3][]{%
+\settowidth{\wordwidth}{#3}%
+\settowidth{\crdwidth}{{\crdfont #2#1}}%
+#3%
+\hspace{-\wordwidth}\raisebox{2.2ex}{\parbox[b][\crdheight][b]{\crdwidth}{\crdfont #2#1}}%
+\addtolength{\wordwidth}{-\crdwidth}%
+\hspace{\wordwidth}%
+}
+
+\newcommand{\chordsbelow}{%
+\renewcommand{\CHORD}[3][]{%
+\settowidth{\wordwidth}{##3}%
+\settowidth{\crdwidth}{{\crdfont ##2##1}}%
+##3%
+\hspace{-\wordwidth}\raisebox{-2.2ex}{\parbox[t][\crdheight][t]{\crdwidth}{\crdfont ##2##1}}%
+\addtolength{\wordwidth}{-\crdwidth}%
+\hspace{\wordwidth}%
+}%
+}
+
+
+\newcommand{\crdA}[2][]{\CHORD[#1]{A}{#2}}
+\newcommand{\crdB}[2][]{\CHORD[#1]{B}{#2}}
+\newcommand{\crdC}[2][]{\CHORD[#1]{C}{#2}}
+\newcommand{\crdD}[2][]{\CHORD[#1]{D}{#2}}
+\newcommand{\crdE}[2][]{\CHORD[#1]{E}{#2}}
+\newcommand{\crdF}[2][]{\CHORD[#1]{F}{#2}}
+\newcommand{\crdG}[2][]{\CHORD[#1]{G}{#2}}
+
+\newcommand{\crdAm}[2][]{\CHORD[#1]{Am}{#2}}
+\newcommand{\crdBm}[2][]{\CHORD[#1]{Bm}{#2}}
+\newcommand{\crdCm}[2][]{\CHORD[#1]{Cm}{#2}}
+\newcommand{\crdDm}[2][]{\CHORD[#1]{Dm}{#2}}
+\newcommand{\crdEm}[2][]{\CHORD[#1]{Em}{#2}}
+\newcommand{\crdFm}[2][]{\CHORD[#1]{Fm}{#2}}
+\newcommand{\crdGm}[2][]{\CHORD[#1]{Gm}{#2}}
+
+\newcommand{\crdAb}[2][]{\CHORD[#1]{A$\flat$}{#2}}
+\newcommand{\crdBb}[2][]{\CHORD[#1]{B$\flat$}{#2}}
+\newcommand{\crdCb}[2][]{\CHORD[#1]{C$\flat$}{#2}}
+\newcommand{\crdDb}[2][]{\CHORD[#1]{D$\flat$}{#2}}
+\newcommand{\crdEb}[2][]{\CHORD[#1]{E$\flat$}{#2}}
+\newcommand{\crdFb}[2][]{\CHORD[#1]{F$\flat$}{#2}}
+\newcommand{\crdGb}[2][]{\CHORD[#1]{G$\flat$}{#2}}
+
+\newcommand{\crdAbm}[2][]{\CHORD[#1]{A$\flat$m}{#2}}
+\newcommand{\crdBbm}[2][]{\CHORD[#1]{B$\flat$m}{#2}}
+\newcommand{\crdCbm}[2][]{\CHORD[#1]{C$\flat$m}{#2}}
+\newcommand{\crdDbm}[2][]{\CHORD[#1]{D$\flat$m}{#2}}
+\newcommand{\crdEbm}[2][]{\CHORD[#1]{E$\flat$m}{#2}}
+\newcommand{\crdFbm}[2][]{\CHORD[#1]{F$\flat$m}{#2}}
+\newcommand{\crdGbm}[2][]{\CHORD[#1]{G$\flat$m}{#2}}
+
+\newcommand{\crdAs}[2][]{\CHORD[#1]{A$\sharp$}{#2}}
+\newcommand{\crdBs}[2][]{\CHORD[#1]{B$\sharp$}{#2}}
+\newcommand{\crdCs}[2][]{\CHORD[#1]{C$\sharp$}{#2}}
+\newcommand{\crdDs}[2][]{\CHORD[#1]{D$\sharp$}{#2}}
+\newcommand{\crdEs}[2][]{\CHORD[#1]{E$\sharp$}{#2}}
+\newcommand{\crdFs}[2][]{\CHORD[#1]{F$\sharp$}{#2}}
+\newcommand{\crdGs}[2][]{\CHORD[#1]{G$\sharp$}{#2}}
+
+\newcommand{\crdAsm}[2][]{\CHORD[#1]{A$\sharp$m}{#2}}
+\newcommand{\crdBsm}[2][]{\CHORD[#1]{B$\sharp$m}{#2}}
+\newcommand{\crdCsm}[2][]{\CHORD[#1]{C$\sharp$m}{#2}}
+\newcommand{\crdDsm}[2][]{\CHORD[#1]{D$\sharp$m}{#2}}
+\newcommand{\crdEsm}[2][]{\CHORD[#1]{E$\sharp$m}{#2}}
+\newcommand{\crdFsm}[2][]{\CHORD[#1]{F$\sharp$m}{#2}}
+\newcommand{\crdGsm}[2][]{\CHORD[#1]{G$\sharp$m}{#2}}
+
+\newcommand{\neolatin}{%
+\renewcommand{\crdA}[2][]{\CHORD[##1]{La}{##2}}%
+\renewcommand{\crdB}[2][]{\CHORD[##1]{Si}{##2}}%
+\renewcommand{\crdC}[2][]{\CHORD[##1]{Do}{##2}}%
+\renewcommand{\crdD}[2][]{\CHORD[##1]{Re}{##2}}%
+\renewcommand{\crdE}[2][]{\CHORD[##1]{Mi}{##2}}%
+\renewcommand{\crdF}[2][]{\CHORD[##1]{Fa}{##2}}%
+\renewcommand{\crdG}[2][]{\CHORD[##1]{Sol}{##2}}%
+%
+\renewcommand{\crdAm}[2][]{\CHORD[##1]{Lam}{##2}}%
+\renewcommand{\crdBm}[2][]{\CHORD[##1]{Sim}{##2}}%
+\renewcommand{\crdCm}[2][]{\CHORD[##1]{Dom}{##2}}%
+\renewcommand{\crdDm}[2][]{\CHORD[##1]{Rem}{##2}}%
+\renewcommand{\crdEm}[2][]{\CHORD[##1]{Mim}{##2}}%
+\renewcommand{\crdFm}[2][]{\CHORD[##1]{Fam}{##2}}%
+\renewcommand{\crdGm}[2][]{\CHORD[##1]{Solm}{##2}}%
+%
+\renewcommand{\crdAb}[2][]{\CHORD[##1]{La$\flat$}{##2}}%
+\renewcommand{\crdBb}[2][]{\CHORD[##1]{Si$\flat$}{##2}}%
+\renewcommand{\crdCb}[2][]{\CHORD[##1]{Do$\flat$}{##2}}%
+\renewcommand{\crdDb}[2][]{\CHORD[##1]{Re$\flat$}{##2}}%
+\renewcommand{\crdEb}[2][]{\CHORD[##1]{Mi$\flat$}{##2}}%
+\renewcommand{\crdFb}[2][]{\CHORD[##1]{Fa$\flat$}{##2}}%
+\renewcommand{\crdGb}[2][]{\CHORD[##1]{Sol$\flat$}{##2}}%
+%
+\renewcommand{\crdAbm}[2][]{\CHORD[##1]{La$\flat$m}{##2}}%
+\renewcommand{\crdBbm}[2][]{\CHORD[##1]{Si$\flat$m}{##2}}%
+\renewcommand{\crdCbm}[2][]{\CHORD[##1]{Do$\flat$m}{##2}}%
+\renewcommand{\crdDbm}[2][]{\CHORD[##1]{Re$\flat$m}{##2}}%
+\renewcommand{\crdEbm}[2][]{\CHORD[##1]{Mi$\flat$m}{##2}}%
+\renewcommand{\crdFbm}[2][]{\CHORD[##1]{Fa$\flat$m}{##2}}%
+\renewcommand{\crdGbm}[2][]{\CHORD[##1]{Sol$\flat$m}{##2}}%
+%
+\renewcommand{\crdAs}[2][]{\CHORD[##1]{La$\sharp$}{##2}}%
+\renewcommand{\crdBs}[2][]{\CHORD[##1]{Si$\sharp$}{##2}}%
+\renewcommand{\crdCs}[2][]{\CHORD[##1]{Do$\sharp$}{##2}}%
+\renewcommand{\crdDs}[2][]{\CHORD[##1]{Re$\sharp$}{##2}}%
+\renewcommand{\crdEs}[2][]{\CHORD[##1]{Mi$\sharp$}{##2}}%
+\renewcommand{\crdFs}[2][]{\CHORD[##1]{Fa$\sharp$}{##2}}%
+\renewcommand{\crdGs}[2][]{\CHORD[##1]{Sol$\sharp$}{##2}}%
+%
+\renewcommand{\crdAsm}[2][]{\CHORD[##1]{La$\sharp$m}{##2}}%
+\renewcommand{\crdBsm}[2][]{\CHORD[##1]{Si$\sharp$m}{##2}}%
+\renewcommand{\crdCsm}[2][]{\CHORD[##1]{Do$\sharp$m}{##2}}%
+\renewcommand{\crdDsm}[2][]{\CHORD[##1]{Re$\sharp$m}{##2}}%
+\renewcommand{\crdEsm}[2][]{\CHORD[##1]{Mi$\sharp$m}{##2}}%
+\renewcommand{\crdFsm}[2][]{\CHORD[##1]{Fa$\sharp$m}{##2}}%
+\renewcommand{\crdGsm}[2][]{\CHORD[##1]{Sol$\sharp$m}{##2}}%
+}
+
+\newcommand{\notranspose}{
+\let\A\crdA
+\let\B\crdB
+\let\C\crdC
+\let\D\crdD
+\let\E\crdE
+\let\F\crdF
+\let\G\crdG
+
+\let\Am\crdAm
+\let\Bm\crdBm
+\let\Cm\crdCm
+\let\Dm\crdDm
+\let\Em\crdEm
+\let\Fm\crdFm
+\let\Gm\crdGm
+
+\let\Ab\crdAb
+\let\Bb\crdBb
+\let\Cb\crdCb
+\let\Db\crdDb
+\let\Eb\crdEb
+\let\Fb\crdFb
+\let\Gb\crdGb
+
+\let\Abm\crdAbm
+\let\Bbm\crdBbm
+\let\Cbm\crdCbm
+\let\Dbm\crdDbm
+\let\Ebm\crdEbm
+\let\Fbm\crdFbm
+\let\Gbm\crdGbm
+
+\let\As\crdAs
+\let\Bs\crdBs
+\let\Cs\crdCs
+\let\Ds\crdDs
+\let\Es\crdEs
+\let\Fs\crdFs
+\let\Gs\crdGs
+
+\let\Asm\crdAsm
+\let\Bsm\crdBsm
+\let\Csm\crdCsm
+\let\Dsm\crdDsm
+\let\Esm\crdEsm
+\let\Fsm\crdFsm
+\let\Gsm\crdGsm
+}
+
+\newcommand\transposeOneUp{
+\let\A\crdBb
+\let\B\crdC
+\let\C\crdDb
+\let\D\crdEb
+\let\E\crdF
+\let\F\crdGb
+\let\G\crdAb
+
+\let\Am\crdBbm
+\let\Bm\crdCm
+\let\Cm\crdDbm
+\let\Dm\crdEbm
+\let\Em\crdFm
+\let\Fm\crdGbm
+\let\Gm\crdAbm
+
+\let\Ab\crdA
+\let\Bb\crdB
+\let\Cb\crdC
+\let\Db\crdD
+\let\Eb\crdE
+\let\Fb\crdF
+\let\Gb\crdG
+
+\let\Abm\crdAm
+\let\Bbm\crdBm
+\let\Cbm\crdCm
+\let\Dbm\crdDm
+\let\Ebm\crdEm
+\let\Fbm\crdFm
+\let\Gbm\crdGm
+
+\let\As\crdB
+\let\Bs\crdCs
+\let\Cs\crdD
+\let\Ds\crdE
+\let\Es\crdFs
+\let\Fs\crdG
+\let\Gs\crdA
+
+\let\Asm\crdBm
+\let\Bsm\crdCsm
+\let\Csm\crdDm
+\let\Dsm\crdEm
+\let\Esm\crdFsm
+\let\Fsm\crdGm
+\let\Gsm\crdAm
+}
+
+\newcommand\transposeTwoUp{
+\let\A\crdB
+\let\B\crdCs
+\let\C\crdD
+\let\D\crdE
+\let\E\crdFs
+\let\F\crdG
+\let\G\crdA
+
+\let\Am\crdBm
+\let\Bm\crdCsm
+\let\Cm\crdDm
+\let\Dm\crdEm
+\let\Em\crdFsm
+\let\Fm\crdGm
+\let\Gm\crdAm
+
+\let\Ab\crdBb
+\let\Bb\crdC
+\let\Cb\crdDb
+\let\Db\crdEb
+\let\Eb\crdF
+\let\Fb\crdGb
+\let\Gb\crdAb
+
+\let\Abm\crdBbm
+\let\Bbm\crdCm
+\let\Cbm\crdDbm
+\let\Dbm\crdEbm
+\let\Ebm\crdFm
+\let\Fbm\crdGbm
+\let\Gbm\crdAbm
+
+\let\As\crdC
+\let\Bs\crdD
+\let\Cs\crdEb
+\let\Ds\crdF
+\let\Es\crdG
+\let\Fs\crdAb
+\let\Gs\crdBb
+
+\let\Asm\crdCm
+\let\Bsm\crdDm
+\let\Csm\crdEbm
+\let\Dsm\crdFm
+\let\Esm\crdGm
+\let\Fsm\crdAbm
+\let\Gsm\crdBbm
+}
+
+\newcommand\transposeThreeUp{
+\let\A\crdC
+\let\B\crdD
+\let\C\crdEb
+\let\D\crdF
+\let\E\crdG
+\let\F\crdAb
+\let\G\crdBb
+
+\let\Am\crdCm
+\let\Bm\crdDm
+\let\Cm\crdEbm
+\let\Dm\crdFm
+\let\Em\crdGm
+\let\Fm\crdAbm
+\let\Gm\crdBbm
+
+\let\Ab\crdB
+\let\Bb\crdCs
+\let\Cb\crdD
+\let\Db\crdE
+\let\Eb\crdFs
+\let\Fb\crdG
+\let\Gb\crdA
+
+\let\Abm\crdBm
+\let\Bbm\crdCsm
+\let\Cbm\crdDm
+\let\Dbm\crdEm
+\let\Ebm\crdFsm
+\let\Fbm\crdGm
+\let\Gbm\crdAm
+
+\let\As\crdCs
+\let\Bs\crdDs
+\let\Cs\crdE
+\let\Ds\crdFs
+\let\Es\crdGs
+\let\Fs\crdA
+\let\Gs\crdB
+
+\let\Asm\crdCsm
+\let\Bsm\crdDsm
+\let\Csm\crdEm
+\let\Dsm\crdFsm
+\let\Esm\crdGsm
+\let\Fsm\crdAm
+\let\Gsm\crdBm
+}
+
+\newcommand\transposeFourUp{
+\let\A\crdCs
+\let\B\crdDs
+\let\C\crdE
+\let\D\crdFs
+\let\E\crdGs
+\let\F\crdA
+\let\G\crdB
+
+\let\Am\crdCsm
+\let\Bm\crdDsm
+\let\Cm\crdEm
+\let\Dm\crdFsm
+\let\Em\crdGsm
+\let\Fm\crdAm
+\let\Gm\crdBm
+
+\let\Ab\crdC
+\let\Bb\crdD
+\let\Cb\crdEb
+\let\Db\crdF
+\let\Eb\crdG
+\let\Fb\crdAb
+\let\Gb\crdBb
+
+\let\Abm\crdCm
+\let\Bbm\crdDm
+\let\Cbm\crdEbm
+\let\Dbm\crdFm
+\let\Ebm\crdGm
+\let\Fbm\crdAbm
+\let\Gbm\crdBbm
+
+\let\As\crdD
+\let\Bs\crdE
+\let\Cs\crdF
+\let\Ds\crdG
+\let\Es\crdA
+\let\Fs\crdBb
+\let\Gs\crdC
+
+\let\Asm\crdDm
+\let\Bsm\crdEm
+\let\Csm\crdFm
+\let\Dsm\crdGm
+\let\Esm\crdAm
+\let\Fsm\crdBbm
+\let\Gsm\crdCm
+}
+
+\newcommand\transposeFiveUp{
+\let\A\crdD
+\let\B\crdE
+\let\C\crdF
+\let\D\crdG
+\let\E\crdA
+\let\F\crdBb
+\let\G\crdC
+
+\let\Am\crdDm
+\let\Bm\crdEm
+\let\Cm\crdFm
+\let\Dm\crdGm
+\let\Em\crdAm
+\let\Fm\crdBbm
+\let\Gm\crdCm
+
+\let\Ab\crdCs
+\let\Bb\crdDs
+\let\Cb\crdE
+\let\Db\crdFs
+\let\Eb\crdGs
+\let\Fb\crdA
+\let\Gb\crdB
+
+\let\Abm\crdCsm
+\let\Bbm\crdDsm
+\let\Cbm\crdEm
+\let\Dbm\crdFsm
+\let\Ebm\crdGsm
+\let\Fbm\crdAm
+\let\Gbm\crdBm
+
+\let\As\crdDs
+\let\Bs\crdEs
+\let\Cs\crdFs
+\let\Ds\crdGs
+\let\Es\crdAs
+\let\Fs\crdB
+\let\Gs\crdCs
+
+\let\Asm\crdDsm
+\let\Bsm\crdEsm
+\let\Csm\crdFsm
+\let\Dsm\crdGsm
+\let\Esm\crdAsm
+\let\Fsm\crdBm
+\let\Gsm\crdCsm
+}
+
+\newcommand\transposeSixUp{
+\let\A\crdDs
+\let\B\crdEs
+\let\C\crdFs
+\let\D\crdGs
+\let\E\crdAs
+\let\F\crdB
+\let\G\crdCs
+
+\let\Am\crdDsm
+\let\Bm\crdEsm
+\let\Cm\crdFsm
+\let\Dm\crdGsm
+\let\Em\crdAsm
+\let\Fm\crdBm
+\let\Gm\crdCsm
+
+\let\Ab\crdD
+\let\Bb\crdE
+\let\Cb\crdF
+\let\Db\crdG
+\let\Eb\crdA
+\let\Fb\crdBb
+\let\Gb\crdC
+
+\let\Abm\crdDm
+\let\Bbm\crdEm
+\let\Cbm\crdFm
+\let\Dbm\crdGm
+\let\Ebm\crdAm
+\let\Fbm\crdBbm
+\let\Gbm\crdCm
+
+\let\As\crdE
+\let\Bs\crdFs
+\let\Cs\crdG
+\let\Ds\crdA
+\let\Es\crdB
+\let\Fs\crdC
+\let\Gs\crdD
+
+\let\Asm\crdEm
+\let\Bsm\crdFsm
+\let\Csm\crdGm
+\let\Dsm\crdAm
+\let\Esm\crdBm
+\let\Fsm\crdCm
+\let\Gsm\crdDm
+}
+
+\newcommand{\transposeSixDown}{\transposeSixUp}
+
+\newcommand{\transposeFiveDown}{
+\let\A\crdE
+\let\B\crdFs
+\let\C\crdG
+\let\D\crdA
+\let\E\crdB
+\let\F\crdC
+\let\G\crdD
+
+\let\Am\crdEm
+\let\Bm\crdFsm
+\let\Cm\crdGm
+\let\Dm\crdAm
+\let\Em\crdBm
+\let\Fm\crdCm
+\let\Gm\crdDm
+
+\let\Ab\crdDs
+\let\Bb\crdEs
+\let\Cb\crdFs
+\let\Db\crdGs
+\let\Eb\crdAs
+\let\Fb\crdB
+\let\Gb\crdCs
+
+\let\Abm\crdDsm
+\let\Bbm\crdEsm
+\let\Cbm\crdFsm
+\let\Dbm\crdGsm
+\let\Ebm\crdAsm
+\let\Fbm\crdBm
+\let\Gbm\crdCsm
+
+\let\As\crdF
+\let\Bs\crdG
+\let\Cs\crdAb
+\let\Ds\crdBb
+\let\Es\crdC
+\let\Fs\crdDb
+\let\Gs\crdEb
+
+\let\Asm\crdGm
+\let\Bsm\crdGm
+\let\Csm\crdAbm
+\let\Dsm\crdBbm
+\let\Esm\crdCm
+\let\Fsm\crdDbm
+\let\Gsm\crdEbm
+}
+
+\newcommand{\transposeFourDown}{
+\let\A\crdF
+\let\B\crdG
+\let\C\crdAb
+\let\D\crdBb
+\let\E\crdC
+\let\F\crdDb
+\let\G\crdEb
+
+\let\Am\crdFm
+\let\Bm\crdGm
+\let\Cm\crdAbm
+\let\Dm\crdBbm
+\let\Em\crdCm
+\let\Fm\crdDbm
+\let\Gm\crdEbm
+
+\let\Ab\crdE
+\let\Bb\crdFs
+\let\Cb\crdG
+\let\Db\crdA
+\let\Eb\crdB
+\let\Fb\crdCs
+\let\Gb\crdD
+
+\let\Abm\crdEm
+\let\Bbm\crdFsm
+\let\Cbm\crdGm
+\let\Dbm\crdAm
+\let\Ebm\crdBm
+\let\Fbm\crdCsm
+\let\Gbm\crdDm
+
+\let\As\crdFs
+\let\Bs\crdGs
+\let\Cs\crdA
+\let\Ds\crdB
+\let\Es\crdCs
+\let\Fs\crdD
+\let\Gs\crdE
+
+\let\Asm\crdFsm
+\let\Bsm\crdGsm
+\let\Csm\crdAm
+\let\Dsm\crdBm
+\let\Esm\crdCsm
+\let\Fsm\crdDm
+\let\Gsm\crdEm
+}
+
+\newcommand{\transposeThreeDown}{
+\let\A\crdFs
+\let\B\crdGs
+\let\C\crdA
+\let\D\crdB
+\let\E\crdCs
+\let\F\crdD
+\let\G\crdE
+
+\let\Am\crdFsm
+\let\Bm\crdGsm
+\let\Cm\crdAm
+\let\Dm\crdBm
+\let\Em\crdCsm
+\let\Fm\crdDm
+\let\Gm\crdEm
+
+\let\Ab\crdF
+\let\Bb\crdG
+\let\Cb\crdAb
+\let\Db\crdBb
+\let\Eb\crdC
+\let\Fb\crdDb
+\let\Gb\crdEb
+
+\let\Abm\crdFm
+\let\Bbm\crdGm
+\let\Cbm\crdAbm
+\let\Dbm\crdBbm
+\let\Ebm\crdCm
+\let\Fbm\crdDbm
+\let\Gbm\crdEbm
+
+\let\As\crdG
+\let\Bs\crdA
+\let\Cs\crdBb
+\let\Ds\crdC
+\let\Es\crdD
+\let\Fs\crdEb
+\let\Gs\crdF
+
+\let\Asm\crdGm
+\let\Bsm\crdAm
+\let\Csm\crdBbm
+\let\Dsm\crdCm
+\let\Esm\crdDm
+\let\Fsm\crdEbm
+\let\Gsm\crdFm
+}
+
+\newcommand{\transposeTwoDown}{
+\let\A\crdG
+\let\B\crdA
+\let\C\crdBb
+\let\D\crdC
+\let\E\crdD
+\let\F\crdEb
+\let\G\crdF
+
+\let\Am\crdGm
+\let\Bm\crdAm
+\let\Cm\crdBbm
+\let\Dm\crdCm
+\let\Em\crdDm
+\let\Fm\crdEbm
+\let\Gm\crdFm
+
+\let\Ab\crdFs
+\let\Bb\crdGs
+\let\Cb\crdA
+\let\Db\crdB
+\let\Eb\crdCs
+\let\Fb\crdDs
+\let\Gb\crdE
+
+\let\Abm\crdFsm
+\let\Bbm\crdGsm
+\let\Cbm\crdAm
+\let\Dbm\crdBm
+\let\Ebm\crdCsm
+\let\Fbm\crdDsm
+\let\Gbm\crdEm
+
+\let\As\crdGs
+\let\Bs\crdAs
+\let\Cs\crdB
+\let\Ds\crdCs
+\let\Es\crdDs
+\let\Fs\crdE
+\let\Gs\crdFs
+
+\let\Asm\crdGsm
+\let\Bsm\crdAsm
+\let\Csm\crdBm
+\let\Dsm\crdCsm
+\let\Esm\crdDsm
+\let\Fsm\crdEm
+\let\Gsm\crdFsm
+}
+
+\newcommand{\transposeOneDown}{
+\let\A\crdGs
+\let\B\crdAs
+\let\C\crdB
+\let\D\crdCs
+\let\E\crdDs
+\let\F\crdE
+\let\G\crdFs
+
+\let\Am\crdGsm
+\let\Bm\crdAsm
+\let\Cm\crdBm
+\let\Dm\crdCsm
+\let\Em\crdDsm
+\let\Fm\crdEm
+\let\Gm\crdFsm
+
+\let\Ab\crdG
+\let\Bb\crdA
+\let\Cb\crdBb
+\let\Db\crdC
+\let\Eb\crdD
+\let\Fb\crdEb
+\let\Gb\crdF
+
+\let\Abm\crdGm
+\let\Bbm\crdAm
+\let\Cbm\crdBbm
+\let\Dbm\crdCm
+\let\Ebm\crdDm
+\let\Fbm\crdEbm
+\let\Gbm\crdFm
+
+\let\As\crdA
+\let\Bs\crdB
+\let\Cs\crdC
+\let\Ds\crdD
+\let\Es\crdE
+\let\Fs\crdF
+\let\Gs\crdG
+
+\let\Asm\crdAm
+\let\Bsm\crdBm
+\let\Csm\crdCm
+\let\Dsm\crdDm
+\let\Esm\crdEm
+\let\Fsm\crdFm
+\let\Gsm\crdGm
+}
+
+\DeclareOption{notranspose}{
+\notranspose
+}
+
+\DeclareOption{transposeOneUp}{
+\transposeOneUp
+}
+
+\DeclareOption{transposeTwoUp}{
+\transposeTwoUp
+}
+
+\DeclareOption{transposeThreeUp}{
+\transposeThreeUp
+}
+
+\DeclareOption{transposeFourUp}{
+\transposeFourUp
+}
+
+\DeclareOption{transposeFiveUp}{
+\transposeFiveUp
+}
+
+\DeclareOption{transposeSixUp}{
+\transposeSixUp
+}
+
+\DeclareOption{transposeSixDown}{
+\transposeSixDown
+}
+
+\DeclareOption{transposeFiveDown}{
+\transposeFiveDown
+}
+
+\DeclareOption{transposeFourDown}{
+\transposeFourDown
+}
+
+\DeclareOption{transposeThreeDown}{
+\transposeThreeDown
+}
+
+\DeclareOption{transposeTwoDown}{
+\transposeTwoDown
+}
+
+\DeclareOption{transposeOneDown}{
+\transposeOneDown
+}
+
+\newcommand{\normalize}{
+\renewcommand\crdBs[2][]{\crdC[##1]{##2}}
+\renewcommand\crdEs[2][]{\crdF[##1]{##2}}
+\renewcommand\crdBsm[2][]{\crdCm[##1]{##2}}
+\renewcommand\crdEsm[2][]{\crdFm[##1]{##2}}
+
+\renewcommand\crdCb[2][]{\crdB[##1]{##2}}
+\renewcommand\crdFb[2][]{\crdE[##1]{##2}}
+\renewcommand\crdCbm[2][]{\crdBm[##1]{##2}}
+\renewcommand\crdEbm[2][]{\crdDsm[##1]{##2}}
+}
+
+\newcommand{\sharponly}{
+\renewcommand\crdAb[2][]{\crdGs[##1]{##2}}
+\renewcommand\crdBb[2][]{\crdAs[##1]{##2}}
+\renewcommand\crdCb[2][]{\crdB[##1]{##2}}
+\renewcommand\crdDb[2][]{\crdCs[##1]{##2}}
+\renewcommand\crdEb[2][]{\crdDs[##1]{##2}}
+\renewcommand\crdFb[2][]{\crdE[##1]{##2}}
+\renewcommand\crdGb[2][]{\crdFs[##1]{##2}}
+
+\renewcommand\crdAbm[2][]{\crdGsm[##1]{##2}}
+\renewcommand\crdBbm[2][]{\crdAsm[##1]{##2}}
+\renewcommand\crdCbm[2][]{\crdBm[##1]{##2}}
+\renewcommand\crdDbm[2][]{\crdCsm[##1]{##2}}
+\renewcommand\crdEbm[2][]{\crdDsm[##1]{##2}}
+\renewcommand\crdFbm[2][]{\crdEm[##1]{##2}}
+\renewcommand\crdGbm[2][]{\crdFsm[##1]{##2}}
+}
+
+\newcommand{\flatonly}{
+\renewcommand\crdAs[2][]{\crdBb[##1]{##2}}
+\renewcommand\crdBs[2][]{\crdC[##1]{##2}}
+\renewcommand\crdCs[2][]{\crdDb[##1]{##2}}
+\renewcommand\crdDs[2][]{\crdEb[##1]{##2}}
+\renewcommand\crdEs[2][]{\crdF[##1]{##2}}
+\renewcommand\crdFs[2][]{\crdGb[##1]{##2}}
+\renewcommand\crdGs[2][]{\crdAb[##1]{##2}}
+
+\renewcommand\crdAsm[2][]{\crdBbm[##1]{##2}}
+\renewcommand\crdBsm[2][]{\crdCm[##1]{##2}}
+\renewcommand\crdCsm[2][]{\crdDbm[##1]{##2}}
+\renewcommand\crdDsm[2][]{\crdEbm[##1]{##2}}
+\renewcommand\crdEsm[2][]{\crdFm[##1]{##2}}
+\renewcommand\crdFsm[2][]{\crdGbm[##1]{##2}}
+\renewcommand\crdGsm[2][]{\crdAbm[##1]{##2}}
+}
+
+\DeclareOption{sharponly}{
+\sharponly
+}
+
+\DeclareOption{flatonly}{
+\flatonly
+}
+
+\DeclareOption{normalize}{
+\normalize
+}
+
+\DeclareOption{chordsbelow}{
+\chordsbelow
+}
+
+\DeclareOption{neolatin}{
+\neolatin
+}
+
+\ExecuteOptions{notranspose}
+\ProcessOptions \ No newline at end of file