diff options
author | Karl Berry <karl@freefriends.org> | 2019-01-06 22:07:54 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2019-01-06 22:07:54 +0000 |
commit | 3c8cfa33809e130ee90dfed3cc4044294026e2a5 (patch) | |
tree | 3da84846317e1b68e1a5e0adfab5db295a4bb279 /Master | |
parent | 1e38cd4b45c93bd4d0e36e7cfb12fb1a8feb02c4 (diff) |
latex4musicians (5jan19)
git-svn-id: svn://tug.org/texlive/trunk@49621 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master')
104 files changed, 4863 insertions, 1 deletions
diff --git a/Master/texmf-dist/doc/latex/latex4musicians/Figures/Makefile.sb b/Master/texmf-dist/doc/latex/latex4musicians/Figures/Makefile.sb new file mode 100644 index 00000000000..7b29db6cdf1 --- /dev/null +++ b/Master/texmf-dist/doc/latex/latex4musicians/Figures/Makefile.sb @@ -0,0 +1,29 @@ +# Makefile for songbook.tex + +FIGURES = fellow.pdf happyb.pdf twinkle.pdf + +sample-songbook: sample-songbook.tex $(FIGURES) + pdflatex sample-songbook.tex; \ + pdflatex sample-songbook.tex; \ + pdflatex sample-songbook.tex + +fellow.pdf: fellow.abc + abcm2ps -c -O= fellow.abc; \ + ps2pdf fellow.ps; \ + pdfcrop fellow.pdf; \ + /bin/mv -f fellow-crop.pdf fellow.pdf + +happyb.pdf: happyb.abc + abcm2ps -O= happyb.abc; \ + ps2pdf happyb.ps; \ + pdfcrop happyb.pdf; \ + /bin/mv -f happyb-crop.pdf happyb.pdf + +twinkle.pdf: twinkle.abc + abcm2ps -O= twinkle.abc; \ + ps2pdf twinkle.ps; \ + pdfcrop twinkle.pdf; \ + /bin/mv -f twinkle-crop.pdf twinkle.pdf + +clean: + /bin/rm -f .*~ *~ *aux *bak *lo? *to? *out *tmp *bbl *ps diff --git a/Master/texmf-dist/doc/latex/latex4musicians/Figures/abctab.abc b/Master/texmf-dist/doc/latex/latex4musicians/Figures/abctab.abc new file mode 100644 index 00000000000..eff562c2ccc --- /dev/null +++ b/Master/texmf-dist/doc/latex/latex4musicians/Figures/abctab.abc @@ -0,0 +1,9 @@ +X: 1 +M: 3/4 +L: 1/4 +K: C +% +V:1 +CDE | FGA | BAB | c2z |] +V:2 clef=tab octave=-1 +CDE | FGA | BAB | c2z |] diff --git a/Master/texmf-dist/doc/latex/latex4musicians/Figures/abctab.ly b/Master/texmf-dist/doc/latex/latex4musicians/Figures/abctab.ly new file mode 100644 index 00000000000..55596cf9515 --- /dev/null +++ b/Master/texmf-dist/doc/latex/latex4musicians/Figures/abctab.ly @@ -0,0 +1,53 @@ + +\version "2.18.2" +% automatically converted by musicxml2ly from abctab.xml + +\header { + encoder = "abc2xml version 218" + encodingdate = "2018-12-22" + } + +\layout { + \context { \Score + autoBeaming = ##f + } + } +PartPOneVoiceOne = \relative c' { + \key c \major \time 3/4 c4 d4 e4 | % 2 + f4 g4 a4 | % 3 + b4 a4 b4 | % 4 + c2 r4 \bar "|." + } + +PartPTwoVoiceOne = \relative c { + \clef "tab" \stopStaff \override Staff.StaffSymbol #'line-count = #6 + \startStaff \key c \major \time 3/4 c4 \5 d4 \4 e4 \4 | % 2 + f4 \4 g4 \3 a4 \3 | % 3 + b4 \2 a4 \3 b4 \2 | % 4 + c2 \2 r4 \bar "|." + } + + +% The score definition +\score { + << + \new Staff << + \context Staff << + \context Voice = "PartPOneVoiceOne" { \PartPOneVoiceOne } + >> + >> + \new TabStaff \with { stringTunings = #`( ,(ly:make-pitch 0 2 0) + ,(ly:make-pitch -1 6 0) ,(ly:make-pitch -1 4 0) + ,(ly:make-pitch -1 1 0) ,(ly:make-pitch -2 5 0) + ,(ly:make-pitch -2 2 0) ) } << + \context TabStaff << + \context TabVoice = "PartPTwoVoiceOne" { \PartPTwoVoiceOne } + >> + >> + + >> + \layout {} + % To create MIDI output, uncomment the following line: + % \midi {} + } + diff --git a/Master/texmf-dist/doc/latex/latex4musicians/Figures/bravura.tex b/Master/texmf-dist/doc/latex/latex4musicians/Figures/bravura.tex new file mode 100644 index 00000000000..6944bf3c401 --- /dev/null +++ b/Master/texmf-dist/doc/latex/latex4musicians/Figures/bravura.tex @@ -0,0 +1,36 @@ +\documentclass{article} +\usepackage{fontspec} +\thispagestyle{empty} + +\newfontfamily\brtxt{BravuraText.otf}[Path=/usr/share/fonts/] +\newfontfamily\brv{Bravura.otf}[Path=/usr/share/fonts/] + +\newcommand{\clefGi} {{\brtxt \char"E050}} +\newcommand{\clefCi} {{\brtxt \char"E05C}} +\newcommand{\clefFi} {{\brtxt \char"E062}} + +\newcommand{\clefG} {{\brv \char"E050}} +\newcommand{\clefC} {{\brv \char"E05C}} +\newcommand{\clefF} {{\brv \char"E062}} +\newcommand{\timeC} {{\brv \char"E08A}} +\newcommand{\timeCHalf} {{\brv \char"E08B}} +\renewcommand{\flat} {{\brv \char"E260}} +\renewcommand{\natural} {{\brv \char"E261}} +\renewcommand{\sharp} {{\brv \char"E262}} +\newcommand{\wholeNote} {{\brv \char"E1D2}} +\newcommand{\halfNote} {{\brv \char"E1D3}} +\newcommand{\halfNoteDown}{{\brv \char"E1D4}} +\newcommand{\quarterNote} {{\brv \char"E1D5}} + +\begin{document} + +The Bravura and BravuraText Music fonts provide thousands of music +symbols. BravuraText glyphs are specifically \clefGi\ designed +\clefFi\ to be used \clefCi\ inline: + +clefs:~ \clefG\ \clefC\ \clefF\ ~time signatures:~ +\timeC\ \timeCHalf\ ~accidentals:~ \sharp\ \flat\ \natural\ +~notes:~ \wholeNote\ \halfNote\ \halfNoteDown\ \quarterNote\ +~and much, much more. + +\end{document} diff --git a/Master/texmf-dist/doc/latex/latex4musicians/Figures/breeches.abc b/Master/texmf-dist/doc/latex/latex4musicians/Figures/breeches.abc new file mode 100644 index 00000000000..2a5313aacb0 --- /dev/null +++ b/Master/texmf-dist/doc/latex/latex4musicians/Figures/breeches.abc @@ -0,0 +1,10 @@ +X:92 +T:Breeches Full of Stitches +R:polka +M:2/4 +L:1/8 +K:Amaj +A>B cA | BA ce | A>B cA | BA F2 |\ +A>B cA | BA ce | A>B AF | FE E2 :| +e>f ec | BA Bc | e>f ec | BA F2 |\ +e>f ec | BA Bc | A>B AF | FE E2 :| diff --git a/Master/texmf-dist/doc/latex/latex4musicians/Figures/chordii.cho b/Master/texmf-dist/doc/latex/latex4musicians/Figures/chordii.cho new file mode 100644 index 00000000000..c674579a939 --- /dev/null +++ b/Master/texmf-dist/doc/latex/latex4musicians/Figures/chordii.cho @@ -0,0 +1,10 @@ +{titles:left} +{title:Imagine} +{st:John Lennon} + +(Intro, x 2) +[C] [Cmaj7] [F] +[C]Imagine there's [Cmaj7]no [F]heaven +[C]It's easy if [Cmaj7]you [F]try +[C]No hell [Cmaj7]below [F]us +[C]Above us [Cmaj7]only [F]sky diff --git a/Master/texmf-dist/doc/latex/latex4musicians/Figures/drowsy.abc b/Master/texmf-dist/doc/latex/latex4musicians/Figures/drowsy.abc new file mode 100644 index 00000000000..dab1e922d5d --- /dev/null +++ b/Master/texmf-dist/doc/latex/latex4musicians/Figures/drowsy.abc @@ -0,0 +1,9 @@ +X:55 +T: Drowsy Maggie +M: C| +L: 1/8 +R: reel +K: Edor +|: E2BE dEBE | E2BE AFDF | E2BE dEBE | BABc dAFD :|[K:D] + d2fd c2ec |defg afge | d2fd c2ec | BABc dAFA | + d2fd c2ec |defg afge | afge fdec |BABc dAFD |] diff --git a/Master/texmf-dist/doc/latex/latex4musicians/Figures/fellow.abc b/Master/texmf-dist/doc/latex/latex4musicians/Figures/fellow.abc new file mode 100644 index 00000000000..940be47b225 --- /dev/null +++ b/Master/texmf-dist/doc/latex/latex4musicians/Figures/fellow.abc @@ -0,0 +1,12 @@ +X: 1 +% T: For He's a Jolly Good Fellow +M: 6/8 +L: 1/8 +K: CMaj +% +G | "C"E2E EDE | F3 E2 E | \ +w:For he's a jol-ly good fel-low, for +"G"D2D DCD | "C"E3 C2 C | E2E EDE | \ +w:he's a jo-ly good fel-low, for he's a jol-ly good +"F"F3 HA2 A | "C"GAG "G"F2 D| "C"C3 z3 |] +w:fel-low, which no-bo-dy can de-ny! diff --git a/Master/texmf-dist/doc/latex/latex4musicians/Figures/gchords.tex b/Master/texmf-dist/doc/latex/latex4musicians/Figures/gchords.tex new file mode 100644 index 00000000000..11b483227a6 --- /dev/null +++ b/Master/texmf-dist/doc/latex/latex4musicians/Figures/gchords.tex @@ -0,0 +1,21 @@ +\documentclass{article} +\usepackage{gchords} +\thispagestyle{empty} + +\begin{document} + +\def\numfrets{4} + +\chords{ % print a row of chords +% fingers: n, x, o, p{n}, f{n} +% C chord: finger 3 pos. 3, finger 2 pos. 2, finger 1 pos. 1 +\chord{t}{n,f3p3,f2p2,n,f1p1,n}{C} +\chord{t}{n,n,p2,p2,p1,n}{Am} +\chord{t}{x,n,n,p2,p3,p1}{Dm} +\chord{t3}{n,p2,n,p1,n,n}{G7 (ugly)} +{\tiny % font size for string labels, t{X} +\chord{t}{t{E}n,t{A}n,t{D}n,t{G}n,t{B}n,t{e}n} +{std. tuning} } +} + +\end{document} diff --git a/Master/texmf-dist/doc/latex/latex4musicians/Figures/gcschemes.tex b/Master/texmf-dist/doc/latex/latex4musicians/Figures/gcschemes.tex new file mode 100644 index 00000000000..5c3588a139f --- /dev/null +++ b/Master/texmf-dist/doc/latex/latex4musicians/Figures/gcschemes.tex @@ -0,0 +1,25 @@ +\documentclass{article} +\usepackage{guitarchordschemes} +\thispagestyle{empty} + +\begin{document} + +\chordscheme[ +name = G (Sol), % chord name +position = 1, % first fret position +finger = {2/5:2} , % fret, string, finger +finger = {3/6:3} , % fret, string, finger +finger = {3/1:4} , % fret, string, finger +ring = {2,3,4} % open strings +] +% +\chordscheme[ +name = G (Sol) barre, +position = 3, +barre = 1/1-6, % fret, string range +finger = {2/3:2}, +finger = {3/5:3}, +finger = {3/4:4}, +] + +\end{document}
\ No newline at end of file diff --git a/Master/texmf-dist/doc/latex/latex4musicians/Figures/gdiagram.tex b/Master/texmf-dist/doc/latex/latex4musicians/Figures/gdiagram.tex new file mode 100644 index 00000000000..64388f3d424 --- /dev/null +++ b/Master/texmf-dist/doc/latex/latex4musicians/Figures/gdiagram.tex @@ -0,0 +1,15 @@ +\documentclass{article} +\usepackage{gchords} +\thispagestyle{empty} + +\begin{document} + +\def\numfrets{4} + +\chords{ +\chord{t}{n,p3,p2,n,p1,n}{C} +\chord{t}{n,n,p2,p2,p1,n}{Am} +\chord{t}{x,n,n,p2,p3,p1}{Dm} +} + +\end{document} diff --git a/Master/texmf-dist/doc/latex/latex4musicians/Figures/glyphs.tex b/Master/texmf-dist/doc/latex/latex4musicians/Figures/glyphs.tex new file mode 100644 index 00000000000..fed562e2681 --- /dev/null +++ b/Master/texmf-dist/doc/latex/latex4musicians/Figures/glyphs.tex @@ -0,0 +1,11 @@ +\documentclass{article} +\usepackage[minimal]{leadsheets} +\useleadsheetslibraries{musicsymbols} +\thispagestyle{empty} + +\begin{document} + +\large +\sharp\ \flat\ \trebleclef\ \altoclef\ \bassclef\ \meterC\ + +\end{document} diff --git a/Master/texmf-dist/doc/latex/latex4musicians/Figures/glyphs_ls.tex b/Master/texmf-dist/doc/latex/latex4musicians/Figures/glyphs_ls.tex new file mode 100644 index 00000000000..bdd915a7dd4 --- /dev/null +++ b/Master/texmf-dist/doc/latex/latex4musicians/Figures/glyphs_ls.tex @@ -0,0 +1,19 @@ +\documentclass{article} +\usepackage[minimal]{leadsheets} +\useleadsheetslibraries{musicsymbols} +\thispagestyle{empty} + +\begin{document} + +Leadsheets makes the music symbol font provided by MusiX\TeX\ +available as text font and then uses it to define a number +of symbols: + +\sharp\ \doublesharp\ \flat\ \doubleflat\ \natural\ +\trebleclef\ \altoclef\ \bassclef\ \meterC\ \allabreve\ +\meter{12}{8}\ \wholerest\ \halfrest\ \quarterrest\ +\eighthrest\ \sixteenthrest\ \Break\ \normalbar\ +\leftrepeat\ \rightrepeat\ \leftrightrepeat\ \doublebar\ +\stopbar + +\end{document} diff --git a/Master/texmf-dist/doc/latex/latex4musicians/Figures/gtablature.ly b/Master/texmf-dist/doc/latex/latex4musicians/Figures/gtablature.ly new file mode 100644 index 00000000000..0af7e8c84bd --- /dev/null +++ b/Master/texmf-dist/doc/latex/latex4musicians/Figures/gtablature.ly @@ -0,0 +1,17 @@ +\version "2.18.2" +\header { +tagline = "" % no footer +} + +\paper { left-margin = 0\cm } + +notes = { + \time 3/4 + c4 d e f g a b a b c'2 r4 +} + +\score { + << + \new TabStaff { \notes } + >> +} diff --git a/Master/texmf-dist/doc/latex/latex4musicians/Figures/gtrcrd.tex b/Master/texmf-dist/doc/latex/latex4musicians/Figures/gtrcrd.tex new file mode 100644 index 00000000000..08d61357c88 --- /dev/null +++ b/Master/texmf-dist/doc/latex/latex4musicians/Figures/gtrcrd.tex @@ -0,0 +1,25 @@ +\documentclass{article} +\thispagestyle{empty} +\usepackage{gtrcrd} + +\setlength{\crdheight}{2ex} % reduce spacing +\def\crdfont{\footnotesize \itshape \sffamily} % chord font +\setlength{\parindent}{0pt} + +\begin{document} + +\textbf{Imagine (John Lennon)} + +\emph{Intro, $\times$ 2} + +% if chords overlap, use \hspace: +\C {\hspace{3mm}} \C[maj7] {\hspace{10mm}} \F ~ + +\C Imagine there's \C[maj7] no {\hspace{5mm}} \F heaven + +\C It's easy if \C[maj7] you {\hspace{2mm}} \F try + +\C No hell \C[maj7] below \F us + +\C Above us \C[maj7] only {\hspace{2mm}} \F sky +\end{document} diff --git a/Master/texmf-dist/doc/latex/latex4musicians/Figures/guitar.tex b/Master/texmf-dist/doc/latex/latex4musicians/Figures/guitar.tex new file mode 100644 index 00000000000..f5cee204658 --- /dev/null +++ b/Master/texmf-dist/doc/latex/latex4musicians/Figures/guitar.tex @@ -0,0 +1,20 @@ +\documentclass{article} +\thispagestyle{empty} +\usepackage{guitar} + +\begin{document} + +\begin{guitar} + \textbf{Imagine (John Lennon)} + + \emph{Intro, $\times$ 2} + % use tilde to add some space + [C] ~ [Cmaj7] ~ [F] ~ + % if chords overlap, add | at the end of the chord, like: + [C]Imagine there's [Cmaj7|]{no} [F]heaven + [C]It's easy if [Cmaj7|]{you} [F]try + [C]No hell [Cmaj7|]{below} [F]us + [C]Above us [Cmaj7|]{only} [F]sky +\end{guitar} + +\end{document} diff --git a/Master/texmf-dist/doc/latex/latex4musicians/Figures/guitartabs.tex b/Master/texmf-dist/doc/latex/latex4musicians/Figures/guitartabs.tex new file mode 100644 index 00000000000..7a49de50868 --- /dev/null +++ b/Master/texmf-dist/doc/latex/latex4musicians/Figures/guitartabs.tex @@ -0,0 +1,34 @@ +\documentclass{guitartabs} +\thispagestyle{empty} + +\begin{document} + +\Large + +\begin{tabline}{4}{4}{4}{E,A,D,G,B,e} + % bar 1 + % note 1 of 3, string 5, fret 4, note lenght 1/4 + \notel{1}{3}{5}{3}{4} + % note 2 of 3, string 4, fret 0, note lenght 1/4 + \notel{2}{3}{4}{0}{4} + \notel{3}{3}{4}{2}{4} + % bar 2 + \nextbar + \notel{1}{3}{4}{3}{4} + \notel{2}{3}{3}{0}{4} + \notel{3}{3}{3}{2}{4} + % bar 3 + \nextbar + \notel{1}{3}{2}{0}{4} + \notel{2}{3}{3}{2}{4} + \notel{3}{3}{2}{0}{4} + % bar 4 + \nextbar + \notel{1}{3}{5}{3}{2} + % rests + \restquarter{2}{3} + \restquarter{3}{3} +\end{tabline} + + +\end{document}
\ No newline at end of file diff --git a/Master/texmf-dist/doc/latex/latex4musicians/Figures/happyb.abc b/Master/texmf-dist/doc/latex/latex4musicians/Figures/happyb.abc new file mode 100644 index 00000000000..0c649708b56 --- /dev/null +++ b/Master/texmf-dist/doc/latex/latex4musicians/Figures/happyb.abc @@ -0,0 +1,10 @@ +X: 1 +% T: Happy Birthday +M: 3/4 +L: 1/4 +K: F +% +C/>C/| "F"DCF | "C"E2 C/>C/ | "C7"DCG | "F"F2 C/>C/| +w: Hap-py birth-day to you, hap-py birth-day to you, hap-py +cAF | "Bb"ED B/>B/| "F"AF"C"G | "F"F2z |] +w: birth-day dear Gui-do, hap-py birth-day to you! diff --git a/Master/texmf-dist/doc/latex/latex4musicians/Figures/julia.abc b/Master/texmf-dist/doc/latex/latex4musicians/Figures/julia.abc new file mode 100644 index 00000000000..8961eeef4c8 --- /dev/null +++ b/Master/texmf-dist/doc/latex/latex4musicians/Figures/julia.abc @@ -0,0 +1,8 @@ +X:63 +T: Julia Delaney's +M: C| +L: 1/8 +R: reel +K: Ddor +|: dcAG ~F2EF|~E2 DE FD D2|dcAG FGAA|Addc d2 fe :| + f2fe fagf |ecgc acgc |f2fe fagf|edcG Add2 :| diff --git a/Master/texmf-dist/doc/latex/latex4musicians/Figures/kyrie.gabc b/Master/texmf-dist/doc/latex/latex4musicians/Figures/kyrie.gabc new file mode 100644 index 00000000000..2b9051c9175 --- /dev/null +++ b/Master/texmf-dist/doc/latex/latex4musicians/Figures/kyrie.gabc @@ -0,0 +1,5 @@ +name:Kyrie XVII; +%% +(c4)KY(f)ri(gfg)e(h.) *() +e(ixjvIH'GhvF'E)lé(ghg')i(g)son.(f.) +<i>bis</i>(::) diff --git a/Master/texmf-dist/doc/latex/latex4musicians/Figures/kyrie.tex b/Master/texmf-dist/doc/latex/latex4musicians/Figures/kyrie.tex new file mode 100644 index 00000000000..3a1c222ea7a --- /dev/null +++ b/Master/texmf-dist/doc/latex/latex4musicians/Figures/kyrie.tex @@ -0,0 +1,10 @@ +\documentclass{article} +\thispagestyle{empty} + +\usepackage[autocompile]{gregoriotex} + +\begin{document} + +\gregorioscore{kyrie} + +\end{document} diff --git a/Master/texmf-dist/doc/latex/latex4musicians/Figures/leadsheets.tex b/Master/texmf-dist/doc/latex/latex4musicians/Figures/leadsheets.tex new file mode 100644 index 00000000000..c6e15843006 --- /dev/null +++ b/Master/texmf-dist/doc/latex/latex4musicians/Figures/leadsheets.tex @@ -0,0 +1,21 @@ +\documentclass{article} +\usepackage[full]{leadsheets} +\thispagestyle{empty} + +\begin{document} + +\begin{song}{title={Imagine}, music={John Lennon}} +\begin{verse} + + \chord{C}Imagine there's \chord{Cmaj7}no \chord{F}heaven + + \chord{C}It's easy if \chord{Cmaj7}you \chord{F}try + + \chord{C}No hell \chord{Cmaj7}below \chord{F}us + + \chord{C}Above us \chord{Cmaj7}only \chord{F}sky + +\end{verse} +\end{song} + +\end{document} diff --git a/Master/texmf-dist/doc/latex/latex4musicians/Figures/lilyglyphs.tex b/Master/texmf-dist/doc/latex/latex4musicians/Figures/lilyglyphs.tex new file mode 100644 index 00000000000..a6b9576a8a9 --- /dev/null +++ b/Master/texmf-dist/doc/latex/latex4musicians/Figures/lilyglyphs.tex @@ -0,0 +1,21 @@ +\documentclass{article} +\usepackage{fontspec} +\usepackage{lilyglyphs} +\thispagestyle{empty} % no page number + +\begin{document} + +Lilyglyphs makes the music symbol font provided by LilyPond available +as text font and then uses it to define a number of symbols, some +\clefGInline\ of which \clefCInline\ can be used \clefFInline\ inline: + +clefs:~ \clefG\ \clefC\ \clefF\ ~time signatures:~ +\lilyTimeC\ \lilyTimeCHalf\ \lilyTimeSignature{7}{8}\ +~accidentals:~ \sharp\ \flat\ \natural\ \doublesharp\ \flatflat\ +~rests:~ \wholeNoteRest\ \halfNoteRest\ \crotchetRest\ +~notes:~ \wholeNote\ \halfNote\ \halfNoteDown\ \quarterNote\ +\quarterNoteDotted\ +~and much, much more. + + +\end{document} diff --git a/Master/texmf-dist/doc/latex/latex4musicians/Figures/lilytab.ly b/Master/texmf-dist/doc/latex/latex4musicians/Figures/lilytab.ly new file mode 100644 index 00000000000..9bfb546ac9e --- /dev/null +++ b/Master/texmf-dist/doc/latex/latex4musicians/Figures/lilytab.ly @@ -0,0 +1,15 @@ +\version "2.18.2" +\header { tagline = "" } % no footer +\paper { left-margin = 0\cm } + +music = { + \time 3/4 + c4 d e f g a b a b c'2 r4 +} + +\score { + << + \new Staff { \clef "G_8" \music } + \new TabStaff { \music } + >> +} diff --git a/Master/texmf-dist/doc/latex/latex4musicians/Figures/mtxlatex.sty b/Master/texmf-dist/doc/latex/latex4musicians/Figures/mtxlatex.sty new file mode 100644 index 00000000000..6061de4b40b --- /dev/null +++ b/Master/texmf-dist/doc/latex/latex4musicians/Figures/mtxlatex.sty @@ -0,0 +1,91 @@ +% mtxlatex.sty: Macro package to make music scores using Latex +% or produce LaTeX documents containing music examples +% Dirk Laurie dlaurie@na-net.ornl.gov 2001-12-27 +% Update: see \mtxdate below +% Some comments on usage appear at the bottom + +\ifx\mtxlatex\undefined\else\endinput\fi + +\def\MTx{\mbox{\textbf{\textsl{M-Tx}}}} +\def\PMX{\textbf{PMX}} +\def\musixlyr{\texttt{\textbf{musixlyr}}} + +\input musixtex +\input musixltx + +% Preamble TeX commands for documents that contain .ex files +% generated by M-Tx/PMX + +\def\mtxlatex{ +\input musixmad +\def\mtxversion{mtxLaTeX} +\def\mtxdate{<16 March 2005>} +\input mtx +\renewcommand{\BIGfont}{\Huge\bfseries} +\renewcommand{\Bigfont}{\Large\bfseries} +% Kill the PMX definition of \parskip. +\parskip=0pt plus 1pt +} +% Extra vertical space evenly spread between systems +\renewcommand\alaligne{\stoppiece\vfill\contpiece} +\def\scoreheight{\textheight 260mm} +\def\scorewidth{\textwidth 193mm} + +\newcommand{\startscore}{\let\SmuF\startmuflex\let\EmuF\endmuflex +\scorewidth\scoreheight +\oddsidemargin -15mm\evensidemargin -15mm\topmargin -20mm +\ifx\mysizes\undefined\else\mysizes\fi +\let\startmuflex\relax\let\endmuflex\relax\let\bye\relax% +\let\nopagenumbers\relax\musicparskip} +\newcommand\headingandcontents[1]{\markboth{#1}{#1}\addcontentsline{toc} + {section}{\protect\numberline{}{#1}}} + +% The environment 'Score' is suitable for scores submitted to the +% Werner Icking music archive +\newenvironment{Score}[2]{\headingandcontents{#1} +\startscore\input #2 +}{\markboth{}{}} + +% The environment 'score' requires you to do your own input +\newenvironment{score}{\startscore}{} + +\newenvironment{excerpts}{ +\newlength\keepOSM\setlength\keepOSM\oddsidemargin +\newlength\keepTM\setlength\keepTM\topmargin +\global\setlength\oddsidemargin{-13mm} \global\setlength\topmargin{-20mm} +\let\startmuflex\relax\let\endmuflex\relax +\let\nopagenumbers\relax \let\bye\relax \let\vfill\relax \let\eject\relax +\musicparskip +\renewcommand{\BIGfont}{\Large\bfseries} +\renewcommand{\Bigfont}{\large\bfseries} +}{\global\setlength\oddsidemargin\keepOSM\global\setlength\topmargin\keepTM} + +\newenvironment{mus}% +{\begin{minipage}{260mm}\startscore\musicparskip}% +{\assignlyrics1{}\assignlyrics2{}% +\gdef\mtxTitle{}\end{minipage}} + +\def\example#1#2#3#4#5#6#7#8{ +\noindent\begin{minipage}[t]{#3} +\begin{mus} \vskip #6 +\input{#1.tex} +\end{mus} +\end{minipage}\hskip #4 +\begin{minipage}[#7]{#5} \vskip #8 +\verbatiminput{#1.#2} +\end{minipage}} + +\endinput + +============================================================================ + +\example{basename}{ext} + {musicwidth}{separation}{codewidth} + {musicvskip}{alignment}{codevskip} + +Set music example together with M-Tx (or other) code. + +basename - musicfile is basename.tex +ext - codefile is basename.ext +separation - distance between music and code minipages +alignment - c, t or b (for code minipage) diff --git a/Master/texmf-dist/doc/latex/latex4musicians/Figures/musicography.tex b/Master/texmf-dist/doc/latex/latex4musicians/Figures/musicography.tex new file mode 100644 index 00000000000..e2924cd7bd0 --- /dev/null +++ b/Master/texmf-dist/doc/latex/latex4musicians/Figures/musicography.tex @@ -0,0 +1,18 @@ +\documentclass{article} +\usepackage{musicography} +\thispagestyle{empty} + +\begin{document} + +Musicography makes the music symbol font provided by MusiX\TeX\ +available as text font and then uses it to define a number +of symbols: + +\musFlat\ \musSharp\ \musNatural\ \musDoubleFlat\ \musDoubleSharp\ +\musWhole\ \musHalf\ \musQuarter\ \musEighth\ \musSixteenth\ +\musWholeDotted\ \musHalfDotted\ \musQuarterDotted\ +\musEighthDotted\ \musSixteenthDotted\ +\meterC\ \meterCutC\ \meterCThree\ \meterCThreeTwo\ \meterCZ\ +\musMeter{7}{8} + +\end{document}
\ No newline at end of file diff --git a/Master/texmf-dist/doc/latex/latex4musicians/Figures/musixguit.tex b/Master/texmf-dist/doc/latex/latex4musicians/Figures/musixguit.tex new file mode 100644 index 00000000000..aa4497a4786 --- /dev/null +++ b/Master/texmf-dist/doc/latex/latex4musicians/Figures/musixguit.tex @@ -0,0 +1,25 @@ +\documentclass{article} +\usepackage{musixguit} +\thispagestyle{empty} + +\begin{document} + +\textbf{Imagine (John Lennon)} + +\begin{song} + +\emph{Intro, $\times$ 2} + +\chord{C} ~ \chord{Cmaj7} {\hspace{8mm}} \chord{F} + +\chord{C}Imagine there's \chord{Cmaj7}no~~~ \chord{F}heaven + +\chord{C}It's easy if \chord{Cmaj7}you~~ \chord{F}try + +\chord{C}No hell \chord{Cmaj7}below \chord{F}us + +\chord{C}Above us \chord{Cmaj7}only~ \chord{F}sky + +\end{song} + +\end{document} diff --git a/Master/texmf-dist/doc/latex/latex4musicians/Figures/musixtab.tex b/Master/texmf-dist/doc/latex/latex4musicians/Figures/musixtab.tex new file mode 100644 index 00000000000..5505918de24 --- /dev/null +++ b/Master/texmf-dist/doc/latex/latex4musicians/Figures/musixtab.tex @@ -0,0 +1,256 @@ +% Extension for MusiXTeX - Guitar Tablatures +% +% This file contains some macros which extend MusiXTeX with some +% common notations for guitar tablatures. It is recommended that +% you use a 6-line system (assuming a 6-string guitar) and increase +% the space between its staves, e.g.: +% +% \setlines16 +% \setsize1\largevalue +\makeatletter + +% Clef symbol that displays "TAB" vertically (looks best with +% \smallmusicsize) +\def\tabclefsymbolsmall{\vtop to .75\Interligne{% + \vss% + \hbox to 2.5\Interligne{\hss\tinytype\bf T}% + \vskip -1\Interligne + \hbox to 2.5\Interligne{\hss\tinytype\bf A}% + \vskip -1\Interligne + \hbox to 2.5\Interligne{\hss\tinytype\bf B}}} + +% Display guitar string numbers on staves +% +% Usage: \str{<string>}{<number>} +% <string>: string number between 1 and 6 +% <number>: any number (or other text) to put onto the string +% (usually a fret number between 0 and 24) +% +% \str inserts horizontal space after the number (like other +% MusiXTeX notes). To insert a non-spacing string note, use +% \zstr. +\def\strerr{\errmessage{str macro requires a string number from 1--6}} +\def\zstr#1#2{% + \ifcase#1\relax\strerr + \or\def\@strnr{-1}% + \or\def\@strnr{1}% + \or\def\@strnr{3}% + \or\def\@strnr{5}% + \or\def\@strnr{7}% + \or\def\@strnr{9}% + \else\strerr + \fi + \cchar\@strnr{\tinytype\bf\roffset{.35}{#2}}} +\def\str#1#2{\zstr{#1}{#2}\sk} + +% Insert a Palm Mute indicator (P.M.) starting at the current position. +% +% Usage: \palmmute{<pitch>}{<length>} +% <pitch>: vertical level at which the palm mute is placed +% <length>: length of the line in multiples of \noteskip +% +% This will insert a palm mute indicator looking similar to this: +% P.M.-----------| +% If <length> is sufficiently small, no line will be inserted, just +% P.M. +\newtoks\@pmstring +\chardef\@pmlinechar=45 +\chardef\@pmendchar=21 +\newdimen\@pmboxminwd +\@pmboxminwd=2.3em +\def\palmmute{\check@staff + \n@v\@pmlinechar \n@ii\@pmendchar\global\@pmstring={P.M.}\fi + \@drawpm} +\def\@drawpm#1#2{\check@staff + \y@v#2\noteskip% + \ifnum #2<2 + \zcharnote{#1}{\loff{\hbox\@to\@pmboxminwd{% + \@pminit}}}% + \else + \zcharnote{#1}{\loff{\hbox\@to\y@v{% + \@pminit\xleaders\hbox{\char\n@v}\hfill\mxsps\char\n@ii}}}% + \fi\fi} +\def\@pminit{% + \setbox\w@rkbox\hbox{\tinytype\the\@pmstring}% + \box\w@rkbox} + +% Insert a Hammer On or Pull Off symbol. +% +% Usage: \hammeron{<pitch>}{<offset>} +% \pulloff{<pitch>}{<offset>} +% <pitch>: vertical level at which the symbol is placed +% <offset>: horizontal offset from the current position +% in note head widths +% +% \hammeron will insert an "H", while \pulloff will insert +% a "P". +\def\hammeron#1#2{% + \ccharnote{#1}{\tinytype\roffset{#2}{H}}} +\def\pulloff#1#2{% + \ccharnote{#1}{\tinytype\roffset{#2}{P}}} + +% Insert a Natural Harmonics or Artifical Harmonics +% indicator. +% +% Usage: \harmonics{<pitch>}{<offset>} +% \aharmonics{<pitch>}{<offset>} +% <pitch>: vertical level at which the symbol is placed +% <offset>: horizontal offset from the current position +% in note head widths +% +% \harmonics will insert "Harm.", while \aharmonics will +% insert "A.H.". +\def\harmonics#1#2{% + \ccharnote{#1}{\tinytype\roffset{#2}{Harm.}}} +\def\aharmonics#1#2{% + \ccharnote{#1}{\tinytype\roffset{#2}{A.H.}}} + +% Insert a bend indicator at the current position. +% +% Usage: \bendhalf{<pitch>}{<textpitch>}{<offset>} +% \bendfull{<pitch>}{<textpitch>}{<offset>} +% <pitch>: vertical level at which the lower end of the +% bend curve is placed +% <textpitch>: vertical level at which the text is placed +% <offset>: horizontal offset from the current position +% in note head widths +% +% \bendhalf uses the text "1/2", while \bendfull uses the +% text "Full". +% +% There are more commands like \Bendhalf, \Bendfull, and +% \Bend, which allow full control over the curve parameters, +% text etc. However, they should rarely be necessary. +\newtoks\@bendslurid +\newtoks\@bendstring +\newtoks\@bendho +\newtoks\@bendvo +\newtoks\@bendht +\newtoks\@bendvt +\newtoks\@bendcur +\newtoks\@bendang +\@bendslurid={14} + +\def\@rstbendho{\global\@bendho={2}} +\def\@rstbendvo{\global\@bendvo={2}} +\def\@rstbendht{\global\@bendht={4}} +\def\@rstbendvt{\global\@bendvt={6}} +\def\@rstbendcur{\global\@bendcur={-.4}} +\def\@rstbendang{\global\@bendang={.2}} +\def\@rstbend{\@rstbendho\@rstbendvo\@rstbendht\@rstbendvt\@rstbendcur\@rstbendang} + +\def\@setbendstring#1{\global\@bendstring={#1}} +\def\@setbendho#1{\global\@bendho={#1}} +\def\@setbendvo#1{\global\@bendvo={#1}} +\def\@setbendht#1{\global\@bendht={#1}} +\def\@setbendvt#1{\global\@bendvt={#1}} +\def\@setbendcur#1{\global\@bendcur={#1}} +\def\@setbendang#1{\global\@bendang={#1}} + +\def\bendhalf{\check@staff + \@rstbend\@setbendstring{1/2}\fi + \@drawbend} +\def\Bendhalf#1#2{\check@staff + \@rstbend\@setbendstring{1/2}% + \@setbendht{#1}\@setbendvt{#2}\fi + \@drawbend} +\def\bendfull{\check@staff + \@rstbend\@setbendstring{Full}\fi + \@drawbend} +\def\Bendfull#1#2{\check@staff + \@rstbend\@setbendstring{Full}% + \@setbendht{#1}\@setbendvt{#2}\fi + \@drawbend} +\def\Bend#1#2#3#4#5#6#7{\check@staff + \@rstbend\@setbendstring{#1}% + \@setbendho{#2}\@setbendvo{#3}\@setbendht{#4}% + \@setbendvt{#5}\@setbendcur{#6}\@setbendang{#7}\fi + \@drawbend} +\def\@drawbend#1#2#3{\check@staff + \roffset{#3}{\iSlur{\the\@bendslurid}{#1}{\the\@bendvo}{\the\@bendho}% + \tSlur{\the\@bendslurid}{#1}{\the\@bendvt}{\the\@bendht}{\the\@bendcur}{\the\@bendang}% + \ccharnote{#2}{\tinytype\roffset{\the\@bendho}{\the\@bendstring}}}% + \fi} + +% Insert a slide indicator at the current position. +% +% Usage: \gslide{<pitch>}{<length>}{<slope>} +% \gslidet{<pitch>}{<length>}{<slope>}{<textpitch>}{<textoffset>} +% \gSlide{<pitch>}{<voffset>}{<length>}{<slope>} +% \gSlidet{<pitch>}{<voffset>}{<length>}{<slope>}{<textpitch>}{<textoffset>} +% <pitch>: vertical level at which the beginning of the +% line is placed +% <voffset>: additional vertical offset (for fine-tuning +% the line position) +% <length>: length of the line (values smaller than 2 +% may cause weird behavior) +% <slope>: slope of the line (should be in [-20,20] range) +% <textpitch>: vertical level at which the text is placed +% <textoffset>: horizontal offset from the current position +% in note head widths for the text +% +% These commands insert a straight line. The text versions +% additionally insert the text "sl." in italics. +\newtoks\@gslidestring +\newtoks\@gslideho +\newtoks\@gslidevp +\newtoks\@gslidevo +\newtoks\@gslidelen +\newtoks\@gslideslp +\newtoks\@gslidestrho +\newtoks\@gslidestrvp + +\def\@rstgslideho{\global\@gslideho={1.5}} +\def\@rstgslidevp{\global\@gslidevp={m}} +\def\@rstgslidevo{\global\@gslidevo={0}} +\def\@rstgslidelen{\global\@gslidelen={3}} +\def\@rstgslideslp{\global\@gslideslp={-10}} +\def\@rstgslidestrho{\global\@gslidestrho={1.8}} +\def\@rstgslidestrvp{\global\@gslidestrvp={p}} +\def\@rstgslide{\@rstgslideho\@rstgslidevp\@rstgslidevo\@rstgslidelen\@rstgslideslp\@rstgslidestrho\@rstgslidestrvp} + +\def\@setgslidestring#1{\global\@gslidestring={#1}} +\def\@setgslideho#1{\global\@gslideho={#1}} +\def\@setgslidevp#1{\global\@gslidevp={#1}} +\def\@setgslidevo#1{\global\@gslidevo={#1}} +\def\@setgslidelen#1{\global\@gslidelen={#1}} +\def\@setgslideslp#1{\global\@gslideslp={#1}} +\def\@setgslidestrho#1{\global\@gslidestrho={#1}} +\def\@setgslidestrvp#1{\global\@gslidestrvp={#1}} + +\def\gslide#1#2#3{\check@staff + \@rstgslide\@setgslidevp{#1}% + \@setgslidelen{#2}\@setgslideslp{#3}\fi + \@drawgslide} +\def\gslidet#1#2#3#4#5{\check@staff + \@rstgslide\@setgslidevp{#1}% + \@setgslidelen{#2}\@setgslideslp{#3}% + \@setgslidestrvp{#4}\@setgslidestrho{#5}\@setgslidestring{sl.}\fi + \@drawgslide\@drawgslidestr} +\def\gslideT#1#2#3#4#5#6{\check@staff + \@rstgslide\@setgslidevp{#1}% + \@setgslidelen{#2}\@setgslideslp{#3}% + \@setgslidestrvp{#4}\@setgslidestrho{#5}\@setgslidestring{#6}\fi + \@drawgslide\@drawgslidestr} +\def\gSlide#1#2#3#4{\check@staff + \@rstgslide\@setgslidevp{#1}\@setgslidevo{#2}% + \@setgslidelen{#3}\@setgslideslp{#4}\fi + \@drawgslide} +\def\gSlidet#1#2#3#4#5#6{\check@staff + \@rstgslide\@setgslidevp{#1}\@setgslidevo{#2}% + \@setgslidelen{#3}\@setgslideslp{#4}% + \@setgslidestrvp{#5}\@setgslidestrho{#6}\@setgslidestring{sl.}\fi + \@drawgslide\@drawgslidestr} +\def\gSlideT#1#2#3#4#5#6#7{\check@staff + \@rstgslide\@setgslidevp{#1}\@setgslidevo{#2}% + \@setgslidelen{#3}\@setgslideslp{#4}% + \@setgslidestrvp{#5}\@setgslidestrho{#6}\@setgslidestring{#7}\fi + \@drawgslide\@drawgslidestr} +\def\@drawgslide{\check@staff + \zcharnote{\the\@gslidevp}{\roffset{\the\@gslideho}{\varline{\the\@gslidevo}{\the\@gslidelen\qn@width}{\the\@gslideslp}}}% + \fi} +\def\@drawgslidestr{\check@staff + \zcharnote{\the\@gslidestrvp}{\tinytype\it\roffset{\the\@gslidestrho}{\the\@gslidestring}}% + \fi} + +\makeatother diff --git a/Master/texmf-dist/doc/latex/latex4musicians/Figures/notes.abc b/Master/texmf-dist/doc/latex/latex4musicians/Figures/notes.abc new file mode 100644 index 00000000000..64141033881 --- /dev/null +++ b/Master/texmf-dist/doc/latex/latex4musicians/Figures/notes.abc @@ -0,0 +1,5 @@ +X: 1 +L: 1/4 +K: C +% +CEGc | diff --git a/Master/texmf-dist/doc/latex/latex4musicians/Figures/sample-abc-all.tex b/Master/texmf-dist/doc/latex/latex4musicians/Figures/sample-abc-all.tex new file mode 100644 index 00000000000..525fda65be9 --- /dev/null +++ b/Master/texmf-dist/doc/latex/latex4musicians/Figures/sample-abc-all.tex @@ -0,0 +1,132 @@ +% typeset with: +% pdflatex -shell-escape sample-abc-all.tex + +\documentclass{article} +\thispagestyle{empty} +\usepackage[generate,ps2eps]{abc} + +% --- M-Tx support +\newenvironment{mtx}[1][] +{\renewcommand{\normalabcoutputfile}{out-mtx}% +\abc[program=musixtex,options={-g},extension=mtx,#1]} +{\endabc} +\newcommand{\mtxinput}[2][]{% +\abcinput[program=musixtex,options={-g},extension=mtx,#1]{#2}} + +% --- PMW support +\newenvironment{pmw}[1][] +{\renewcommand{\normalabcoutputfile}{out-pmw}% +\abc[program=pmw,options={-includefont},extension=pmw,#1]} +{\endabc} +\newcommand{\pmwinput}[2][]{% +\abcinput[program=pmw,options={-includefont},extension=pmw,#1]{#2}} + +% --- LilyPond support +% !!! BUG: the LilyPond source must begin with a \null command +\newenvironment{lily}[1][] +{\renewcommand{\normalabcoutputfile}{out-lily}% +\abc[program=lilypond,options={-d backend=eps},extension=ly,#1]} +{\endabc} +\newcommand{\lilyinput}[2][]{% +\abcinput[program=lilypond,options={--ps},extension=ly,#1]{#2}} + +% --- MUP support +\newenvironment{mup}[1][] +{\renewcommand{\normalabcoutputfile}{out-mup}% +\abc[program=mup,options={-F},extension=mup,#1]} +{\endabc} +\newcommand{\mupinput}[2][]{% +\abcinput[program=mup,options={-F},extension=mup,#1]{#2}} + +% --- ABC must be redefined +\newenvironment{ABC}[1][] +{\renewcommand{\normalabcoutputfile}{out-ABC}% +\abc[program=abcm2ps,options={-O=},extension=abc,#1]} +{\endabc} +\newcommand{\ABCinput}[2][]{% +\abcinput[program=abcm2ps,options={-O=},extension=abc,#1]{#2}} + +\begin{document} + +This document includes music excerpts written in several formats. It +uses \texttt{abc.sty} and defines new environments. + +This is a short piece, typeset by M-Tx: + +\begin{mtx} +Title: Music sample in M-Tx +Style: Solo +Meter: C +Width: 160mm + +c4 d8 e f g a b | c4 b8 a g f e d | c8 g+ e g c- g+ e g | c4- e c r | +\end{mtx} + +The same piece, typeset by LilyPond: + +\begin{lily} + % twice - it's required to avoid a bug +\version "2.18.2" +\version "2.18.2" + +\header { + title = "Music sample in LilyPond" + tagline = "" % no footer +} + +\relative c' { + \time 4/4 + \clef treble + c4 d8 e f8 g a b | c4 b8 a g8 f e d | + c8 g' e g c,8 g' e g | c,4 e c r \bar "|." +} +\end{lily} + +The same piece, typeset by PMW: + +\begin{pmw} +Heading "|Music sample in PMW" +Key C +Time 4/4 + +[stave 1 treble 1] +c d- e-; f-g-a-b-; | c' b- a-; g-f-e-d-; | +c-g-e-g-; c-g-e-g-; |c e c r | +[endstave] +\end{pmw} + +The same piece, typeset by MUP: + +\begin{mup} +// music sample in MUP notation + +header + title "Music sample in MUP" + +score + time=4/4 + +music + 1: 4c; 8d bm; e ebm; f bm; g; a; b ebm; + bar + 1: 4c+; 8b bm; a ebm; g bm; f; e; d ebm; + bar + 1: 8c bm; g; e; g ebm; c bm; g; e; g ebm; + bar + 1: 4c; e; c; r; + endbar +\end{mup} + +The same piece, typeset by abcm2ps: + +\begin{ABC} +X: 1 +T: Music sample in ABC +M: 4/4 +L: 1/4 +K: C +% +C D/E/ F/G/A/B/|c B/A/ G/F/E/D/|C/G/E/G/ C/G/E/G/|CECz|] +\end{ABC} + +\end{document} diff --git a/Master/texmf-dist/doc/latex/latex4musicians/Figures/sample-abc.abc b/Master/texmf-dist/doc/latex/latex4musicians/Figures/sample-abc.abc new file mode 100644 index 00000000000..1f178649c4c --- /dev/null +++ b/Master/texmf-dist/doc/latex/latex4musicians/Figures/sample-abc.abc @@ -0,0 +1,7 @@ +X: 1 +T: Music sample in ABC +M: C +L: 1/4 +K: C +% +C D/E/ F/G/A/B/|c B/A/ G/F/E/D/|C/G/E/G/ C/G/E/G/|CECz|] diff --git a/Master/texmf-dist/doc/latex/latex4musicians/Figures/sample-abc.tex b/Master/texmf-dist/doc/latex/latex4musicians/Figures/sample-abc.tex new file mode 100644 index 00000000000..fb198079113 --- /dev/null +++ b/Master/texmf-dist/doc/latex/latex4musicians/Figures/sample-abc.tex @@ -0,0 +1,27 @@ +\documentclass{article} +\usepackage[generate,ps2eps]{abc} +\thispagestyle{empty} + +\begin{document} + +This is an Irish reel: + +\begin{abc}[name=julia,program={abcm2ps -O=}] +X:63 +T: Julia Delaney's +M: C| +L: 1/8 +R: reel +K: Ddor +|: dcAG ~F2EF|~E2 DE FD D2|dcAG FGAA|Addc d2 fe :| + f2fe fagf |ecgc acgc |f2fe fagf|edcG Add2 :| +\end{abc} + +This is an Irish polka, slighly smaller: + +\abcinput[program={abcm2ps -O=},width=0.9\abcwidth] +{breeches} + +End of document. + +\end{document} diff --git a/Master/texmf-dist/doc/latex/latex4musicians/Figures/sample-all.tex b/Master/texmf-dist/doc/latex/latex4musicians/Figures/sample-all.tex new file mode 100644 index 00000000000..507de59454e --- /dev/null +++ b/Master/texmf-dist/doc/latex/latex4musicians/Figures/sample-all.tex @@ -0,0 +1,36 @@ +\documentclass{article} +\thispagestyle{empty} +\usepackage[generate,ps2eps]{abc} + +% --- M-Tx support +\newenvironment{mtx}[1][] +{\renewcommand{\normalabcoutputfile}{out-mtx}% +\abc[program=musixtex,options={-g},extension=mtx,#1]} +{\endabc} +\newcommand{\mtxinput}[2][]{% +\abcinput[program=musixtex,options={-g},extension=mtx,#1]{#2}} + +% --- PMW support +\newenvironment{pmw}[1][] +{\renewcommand{\normalabcoutputfile}{out-pmw}% +\abc[program=pmw,options={-includefont},extension=pmw,#1]} +{\endabc} +\newcommand{\pmwinput}[2][]{% +\abcinput[program=pmw,options={-includefont},extension=pmw,#1]{#2}} + +\begin{document} + +This document includes music excerpts written in different formats. It +uses \texttt{abc.sty} and defines new environments. + +This is a short piece, typeset by M-Tx: + +\mtxinput{sample-mtx} + +The same piece, typeset by PMW: + +\pmwinput{sample-pmw} + +End of document. + +\end{document} diff --git a/Master/texmf-dist/doc/latex/latex4musicians/Figures/sample-includeall.tex b/Master/texmf-dist/doc/latex/latex4musicians/Figures/sample-includeall.tex new file mode 100644 index 00000000000..1db830dd097 --- /dev/null +++ b/Master/texmf-dist/doc/latex/latex4musicians/Figures/sample-includeall.tex @@ -0,0 +1,81 @@ +% typeset with: +% pdflatex -shell-escape sample-example.tex + +\documentclass{article} +\thispagestyle{empty} +\usepackage[generate,ps2eps]{abc} + +% --- M-Tx support +% https://ctan.org/pkg/m-tx + +\newcommand{\mtxinput}[2][]{% +\abcinput[program=musixtex,options={-g},extension=mtx,#1]{#2}} + +% --- PMW support +% http://people.ds.cam.ac.uk/ph10/pmw.html + +\newcommand{\pmwinput}[2][]{% +\abcinput[program=pmw,options={-includefont},extension=pmw,#1]{#2}} + +% --- LilyPond support +% http://lilypond.org/ + +\newcommand{\lilyinput}[2][]{% +\abcinput[program=lilypond,options={-d backend=eps},extension=ly,#1]{#2}} + +% --- MUP support +% http://arkkra.com/ + +\newcommand{\mupinput}[2][]{% +\abcinput[program=mup,options={-F},extension=mup,#1]{#2}} + +% --- ABC is supported by default + +\begin{document} + +This document includes music excerpts written in several formats. It +uses \texttt{abc.sty} and defines new environments. + +\bigskip + +This is a short piece, typeset by M-Tx: + +\medskip + +\mtxinput{sample-mtx} + +\medskip + +The same piece, typeset by LilyPond: + +\medskip + +\lilyinput{sample-lilypond} + +\medskip + +The same piece, typeset by PMW: + +\medskip + +\pmwinput{sample-pmw} + +\medskip + +The same piece, typeset by MUP: + +\medskip + +\mupinput{sample-mup} + +\medskip + +The same piece, typeset by abcm2ps: + +\medskip + +\abcinput[program=abcm2ps,options={-c -O=},extension=abc]{sample-abc} + +\end{document} + +% End of file `sample-includeall.tex'. diff --git a/Master/texmf-dist/doc/latex/latex4musicians/Figures/sample-latexmtx.ltx b/Master/texmf-dist/doc/latex/latex4musicians/Figures/sample-latexmtx.ltx new file mode 100644 index 00000000000..c001d0fc2c2 --- /dev/null +++ b/Master/texmf-dist/doc/latex/latex4musicians/Figures/sample-latexmtx.ltx @@ -0,0 +1,27 @@ +\documentclass[12pt]{article} +\usepackage{mtxlatex} % usually not installed +\thispagestyle{empty} + +\mtxlatex + +% compile with: +% musixtex sample-mtx scale sample-latexmtx.ltx + +\begin{document} + +This \LaTeX\ document includes music written in M-Tx. The \texttt{mus} +environment includes music inline: \begin{mus} \input{scale.tex} +\end{mus} , while the \texttt{excerpts} environment is used for longer +excerpts: + +\medskip + +\begin{excerpts} + \input{sample-mtx.tex} +\end{excerpts} + +\medskip + +End of document. + +\end{document} diff --git a/Master/texmf-dist/doc/latex/latex4musicians/Figures/sample-lilybook.lytex b/Master/texmf-dist/doc/latex/latex4musicians/Figures/sample-lilybook.lytex new file mode 100644 index 00000000000..435f6131a64 --- /dev/null +++ b/Master/texmf-dist/doc/latex/latex4musicians/Figures/sample-lilybook.lytex @@ -0,0 +1,31 @@ +\documentclass{article} +\thispagestyle{empty} + +\begin{document} + +This is a LilyPond snippet \begin{lilypond} {c' e' g'} +\end{lilypond} embedded in the \LaTeX{} source. + +This is another LilyPond excerpt that uses the \texttt{lilypond} +environment: + +\medskip + +\begin{lilypond} + \score { + << + \relative c' { + \time 4/4 + \clef treble + c4 d8 e f8 g a b | c4 b8 a g8 f e d | + c8 g' e g c,8 g' e g | c,4 e c r \bar "|." + } + >> + } % end of score +\end{lilypond} + +\medskip + +End of document. + +\end{document} diff --git a/Master/texmf-dist/doc/latex/latex4musicians/Figures/sample-lilypond.ly b/Master/texmf-dist/doc/latex/latex4musicians/Figures/sample-lilypond.ly new file mode 100644 index 00000000000..82ee67907f0 --- /dev/null +++ b/Master/texmf-dist/doc/latex/latex4musicians/Figures/sample-lilypond.ly @@ -0,0 +1,17 @@ +% music sample in LilyPond notation + +\version "2.18.2" + +\header { + title = "Music sample in LilyPond" + tagline = "" % no footer +} + +\paper { left-margin = 0\cm } + +\relative c' { + \time 4/4 + \clef treble + c4 d8 e f8 g a b | c4 b8 a g8 f e d | + c8 g' e g c,8 g' e g | c,4 e c r \bar "|." +} diff --git a/Master/texmf-dist/doc/latex/latex4musicians/Figures/sample-lyluatex.tex b/Master/texmf-dist/doc/latex/latex4musicians/Figures/sample-lyluatex.tex new file mode 100644 index 00000000000..596d8ff3b27 --- /dev/null +++ b/Master/texmf-dist/doc/latex/latex4musicians/Figures/sample-lyluatex.tex @@ -0,0 +1,32 @@ +\documentclass{article} +\usepackage{lyluatex} +\thispagestyle{empty} + +\begin{document} + +This is a LilyPond snippet \lilypond{c' e' g'} embedded in the text +using the \verb|\lilypond| command. + +This is another LilyPond excerpt that uses the \texttt{lilypond} +environment: + +\medskip + +\begin{lilypond} + \score { + << + \relative c' { + \time 4/4 + \clef treble + c4 d8 e f8 g a b | c4 b8 a g8 f e d | + c8 g' e g c,8 g' e g | c,4 e c r \bar "|." + } + >> + } % end of score +\end{lilypond} + +\medskip + +End of document. + +\end{document} diff --git a/Master/texmf-dist/doc/latex/latex4musicians/Figures/sample-mtx.mtx b/Master/texmf-dist/doc/latex/latex4musicians/Figures/sample-mtx.mtx new file mode 100644 index 00000000000..13e88d39e41 --- /dev/null +++ b/Master/texmf-dist/doc/latex/latex4musicians/Figures/sample-mtx.mtx @@ -0,0 +1,8 @@ +% music sample in M-Tx notation + +Title: Music sample in M-Tx +Style: Solo +Meter: C +Width: 160mm + +c4 d8 e f g a b | c4 b8 a g f e d | c8 g+ e g c- g+ e g | c4- e c r | diff --git a/Master/texmf-dist/doc/latex/latex4musicians/Figures/sample-mtx.pmx b/Master/texmf-dist/doc/latex/latex4musicians/Figures/sample-mtx.pmx new file mode 100644 index 00000000000..c9b98737250 --- /dev/null +++ b/Master/texmf-dist/doc/latex/latex4musicians/Figures/sample-mtx.pmx @@ -0,0 +1,27 @@ +--- +\def\mtxversion{0.63a} +\def\mtxdate{<8 April 2018>} +\input mtx +\mtxTitleLine{Music sample in M-Tx} +--- +1 -1 1 4 4 0 6 0.00000 0 1 1 20 0 + +0 +./ +Tt +\mtxTitle +w160m +% Paragraph 3 line 8 bar 1 +c44 d8 e8 f8 g8 a8 b8 | / + +%Bar 2 +c4 b8 a8 g8 f8 e8 d8 | / + +%Bar 3 +c8 g8+ e8 g8 c8- g8+ e8 g8 | / + +%Bar 4 +c4- e4 c4 r4 | Rb + / + +% Coded by M-Tx diff --git a/Master/texmf-dist/doc/latex/latex4musicians/Figures/sample-mtx.tex b/Master/texmf-dist/doc/latex/latex4musicians/Figures/sample-mtx.tex new file mode 100644 index 00000000000..bcb74fd5a99 --- /dev/null +++ b/Master/texmf-dist/doc/latex/latex4musicians/Figures/sample-mtx.tex @@ -0,0 +1,50 @@ +%%%%%%%%%%%%%%%%% +% +% sample-mtx.tex +% +%%%%%%%%%%%%%%%% +\def\mtxversion{0.63a} +\def\mtxdate{<8 April 2018>} +\input mtx +\mtxTitleLine{Music sample in M-Tx} +\input musixtex +\input pmx +\setmaxslurs{24}\setmaxinstruments{24}% +\normalmusicsize% +\nopagenumbers +\tracingstats=2\relax +\hsize=454pt +\vsize740pt +\def\nbinstruments{1} +\setstaffs11 +\setclef10 +\setname1{ } +\generalsignature{ 0}% +\generalmeter\meterC% +\parindent 0pt +\elemskip1pt\afterruleskip1.000pt\beforeruleskip0pt\relax +\stafftopmarg0pt\staffbotmarg5\Interligne\interstaff{10}\relax +\nostartrule +\readmod{sample-mtx} +\startmuflex\startpiece\addspace\afterruleskip% +\znotes\zcharnote{16}{\titles{2.0}{}{0}% +{\mtxTitle}{2.0}{}{0}}\en% +% Bar count 1 +\pnotes{2.83}\qu c\en% +\pnotes{2.00}\ibu1d2\qb1d\tbu1\qb1e\ibu1g2\qb1f\qb1g\qb1{'a}\tbu1\qb1b% +\en% +% Bar count 2 +\xbar +\pnotes{2.83}\ql{'c}\en% +\pnotes{2.00}\ibu1{'b}{-2}\qb1b\tbu1\qb1a\ibu1{`f}{-2}\qb1g\qb1f\qb1e% +\tbu1\qb1d\en% +% Bar count 3 +\xbar +\pnotes{2.00}\ibu1f0\qb1c\qb1g\qb1e\tbu1\qb1g\ibu1f0\qb1c\qb1g\qb1e% +\tbu1\qb1g\en% +% Bar count 4 +\xbar +\pnotes{2.83}\qu c\qu e\qu c\qp\en% +\endpiece +\vfill\eject\endmuflex +\bye diff --git a/Master/texmf-dist/doc/latex/latex4musicians/Figures/sample-mup.mup b/Master/texmf-dist/doc/latex/latex4musicians/Figures/sample-mup.mup new file mode 100644 index 00000000000..76249b9de13 --- /dev/null +++ b/Master/texmf-dist/doc/latex/latex4musicians/Figures/sample-mup.mup @@ -0,0 +1,17 @@ +// music sample in MUP notation + +header + title "Music sample in MUP" + +score + time=4/4 + +music + 1: 4c; 8d bm; e ebm; f bm; g; a; b ebm; + bar + 1: 4c+; 8b bm; a ebm; g bm; f; e; d ebm; + bar + 1: 8c bm; g; e; g ebm; c bm; g; e; g ebm; + bar + 1: 4c; e; c; r; + endbar diff --git a/Master/texmf-dist/doc/latex/latex4musicians/Figures/sample-musixtab.tex b/Master/texmf-dist/doc/latex/latex4musicians/Figures/sample-musixtab.tex new file mode 100644 index 00000000000..4a2ef3b9bf5 --- /dev/null +++ b/Master/texmf-dist/doc/latex/latex4musicians/Figures/sample-musixtab.tex @@ -0,0 +1,11 @@ +\input musixtex +\input musixps +\input musixtab + +\setlines16 +\setsize1\largevalue + +\setclefsymbol1{\tabclefsymbolsmall} + +% \str{4}{4} + diff --git a/Master/texmf-dist/doc/latex/latex4musicians/Figures/sample-musixtex.tex b/Master/texmf-dist/doc/latex/latex4musicians/Figures/sample-musixtex.tex new file mode 100644 index 00000000000..0d7f5851ba9 --- /dev/null +++ b/Master/texmf-dist/doc/latex/latex4musicians/Figures/sample-musixtex.tex @@ -0,0 +1,40 @@ +\documentclass{article} +\usepackage{musixtex} +\thispagestyle{empty} + +\begin{document} + +A short music excerpt in MusiX\TeX: + +\medskip + +\begin{music} + \smallmusicsize + \instrumentnumber{1} + \setstaffs1{1} + \generalmeter{\meterC} + \nobarnumbers + \startextract + % bar 1 + \Notes \qu c \en % C + \notes \ibu1d2\qb1d\tbu1\qb1e \en % beamed DE + \notes \ibu1g2\qb1f\qb1g% + \qb1{'a}\tbu1\qb1b \en % beamed FGAB + \bar % bar 2 + \Notes \ql{'c} \en % c + \notes \ibu1{'b}{-3}% % beam slope + \qb1b\tbu1\qb1a \en % beamed BA + \notes \ibu1{g}{-3}% + \qb1g\qb1f\qb1e\tbu1\qb1d \en % beamed GFED + \bar % bar 3 + \notes \ibu1f0\qb1c\qb1g\qb1e\tbu1\qb1g% % beamed CGEG + \ibu1f0\qb1c\qb1g\qb1e\tbu1\qb1g \en % beamed CGEG + \bar % bar 4 + \Notes \qu c\qu e\qu c\qp \en % CEC + \endextract + +\end{music} + +End of the excerpt. + +\end{document} diff --git a/Master/texmf-dist/doc/latex/latex4musicians/Figures/sample-pmw.pmw b/Master/texmf-dist/doc/latex/latex4musicians/Figures/sample-pmw.pmw new file mode 100644 index 00000000000..7809fea8b2f --- /dev/null +++ b/Master/texmf-dist/doc/latex/latex4musicians/Figures/sample-pmw.pmw @@ -0,0 +1,10 @@ +@ music sample in PMW + +Heading "|Music sample in PMW" +Key C +Time 4/4 + +[stave 1 treble 1] +c d- e-; f-g-a-b-; | c' b- a-; g-f-e-d-; | +c-g-e-g-; c-g-e-g-; |c e c r | +[endstave] diff --git a/Master/texmf-dist/doc/latex/latex4musicians/Figures/sample-songbook.tex b/Master/texmf-dist/doc/latex/latex4musicians/Figures/sample-songbook.tex new file mode 100644 index 00000000000..10d2ae9a202 --- /dev/null +++ b/Master/texmf-dist/doc/latex/latex4musicians/Figures/sample-songbook.tex @@ -0,0 +1,113 @@ +\documentclass[11pt]{article} +\usepackage{graphicx} +\usepackage{gchords} +\usepackage{guitar} +% \thispagestyle{empty} +% \pagestyle{empty} + +\begin{document} + +\title{A Minimal Songbook} +\author{Guido Gonzato} + +\maketitle + +\tableofcontents + +\bigskip +\hrule + +% ----- + +\section{For He's a Jolly Good Fellow} + +According to the 1998 Guinness World Records, this is the second most +recognized song in the English language. + +\smallchords + +\def\numfrets{4} +\chords{ +\chord{t}{n,p3,p2,n,p1,n}{C} +\chord{t}{p3,p2,n,n,n,p3}{G} +\chord{t1}{n,p2,p2,p1,n,n}{F} +} + +\medskip + +\includegraphics[width=\textwidth]{fellow} + +% ----- + +\section{Happy Birthday To You} + +According to the 1998 Guinness World Records, it is the most +recognized song in the English language, followed by ``For He's a +Jolly Good Fellow''. + +\def\numfrets{4} +\chords{ +\chord{t1}{n,p2,p2,p1,n,n}{F} +\chord{t}{n,p3,p2,n,p1,n}{C} +\chord{t}{n,p3,p2,p3,p1,n}{C7} +\chord{t1}{n,n,p2,p2,p2,n}{B$\flat$} +} + +\medskip + +\includegraphics[width=\textwidth]{happyb} + +% ----- + +\section{Twinkle, Twinkle Little Star} + +This is a popular English lullaby. + +\def\numfrets{4} +\chords{ +\chord{t}{n,p3,p2,n,p1,n}{C} +\chord{t1}{n,p2,p2,p1,n,n}{F} +\chord{t}{x,n,n,p2,p3,p1}{Dm} +\chord{t}{p3,p2,n,n,n,p3}{G} +} + +\includegraphics[width=\textwidth]{twinkle} + +\medskip + +\begin{guitar} + +[C]Twinkle, twinkle, [F]little [C]star, +[Dm]How I [C]wonder [G]what you [C]are! +[C]Up a[Dm]bove the [C]world so [G]high, +[C]Like a [Dm]diamond [C]in the [G]sky. +Twinkle{\ldots} + +[C]When this blazing [F]sun is [C]gone, +[Dm]When he [C]nothing [G]shines u[C]pon, +[C]Then you [Dm]show your [C]little [G]light, +[C]Twinkle, [Dm]twinkle, [C]through the night. +Twinkle{\ldots} + +[C]Then the [F]traveller in the [C]dark +[Dm]Thanks you [C]for your [G]tiny [C]spark; +[C]He could [Dm]not see [C]where to [G]go, +[C]If you [Dm]did not [C]twinkle [G]so. +Twinkle{\ldots} + +[C]In the dark blue [F]sky you [C]keep, +And [Dm]often [C]through my [G]curtains [C]peep, +[C]For you [Dm]never [C]shut your [G]eye +[C]Till the [Dm]sun is [C]in the [G]sky. +Twinkle{\ldots} + +[C]As your bright and [F]tiny [C]spark +[Dm]Lights the [C]traveller [G]in the [C]dark, +[C]Though I [Dm]know not [C]what you [G]are, +[C]Twinkle, [Dm]twinkle, [C]little [G]star. +Twinkle{\ldots} + +\end{guitar} + + +\end{document}
\ No newline at end of file diff --git a/Master/texmf-dist/doc/latex/latex4musicians/Figures/scale.mtx b/Master/texmf-dist/doc/latex/latex4musicians/Figures/scale.mtx new file mode 100644 index 00000000000..2f3e6f326ba --- /dev/null +++ b/Master/texmf-dist/doc/latex/latex4musicians/Figures/scale.mtx @@ -0,0 +1,6 @@ +Style: Solo +Meter: C +Size: 13pt +Width: 30mm + +c8 d e f g2 | diff --git a/Master/texmf-dist/doc/latex/latex4musicians/Figures/scale.pmx b/Master/texmf-dist/doc/latex/latex4musicians/Figures/scale.pmx new file mode 100644 index 00000000000..ffe916b089c --- /dev/null +++ b/Master/texmf-dist/doc/latex/latex4musicians/Figures/scale.pmx @@ -0,0 +1,16 @@ +--- +\def\mtxversion{0.63a} +\def\mtxdate{<8 April 2018>} +\input mtx +--- +1 -1 1 4 4 0 6 0.00000 0 1 1 16 0 + +0 +./ +\\mtxSetSize{1}{\mtxSmallSize}\ +w30m +% Paragraph 2 line 6 bar 1 +c84 d8 e8 f8 g2 | Rb + / + +% Coded by M-Tx diff --git a/Master/texmf-dist/doc/latex/latex4musicians/Figures/scale.tex b/Master/texmf-dist/doc/latex/latex4musicians/Figures/scale.tex new file mode 100644 index 00000000000..59c6f5bfcb6 --- /dev/null +++ b/Master/texmf-dist/doc/latex/latex4musicians/Figures/scale.tex @@ -0,0 +1,36 @@ +%%%%%%%%%%%%%%%%% +% +% scale.tex +% +%%%%%%%%%%%%%%%% +\def\mtxversion{0.63a} +\def\mtxdate{<8 April 2018>} +\input mtx +\input musixtex +\input pmx +\setmaxslurs{24}\setmaxinstruments{24}% +\smallmusicsize% +\nopagenumbers +\tracingstats=2\relax +\hsize= 85pt +\vsize740pt +\def\nbinstruments{1} +\setstaffs11 +\setclef10 +\setname1{ } +\generalsignature{ 0}% +\generalmeter\meterC% +\parindent 0pt +\elemskip1pt\afterruleskip1.000pt\beforeruleskip0pt\relax +\stafftopmarg0pt\staffbotmarg5\Interligne\interstaff{10}\relax +\nostartrule +\readmod{scale} +\mtxSetSize{1}{\mtxSmallSize}% +\startmuflex\startpiece\addspace\afterruleskip% +\znotes\zcharnote{16}{\titles{2.0}{}{0}{}{0}{}{0}}\en% +% Bar count 1 +\pnotes{2.00}\ibu1d2\qb1c\qb1d\qb1e\tbu1\qb1f\en% +\pnotes{4.00}\hu g\en% +\endpiece +\vfill\eject\endmuflex +\bye diff --git a/Master/texmf-dist/doc/latex/latex4musicians/Figures/scale1.abc b/Master/texmf-dist/doc/latex/latex4musicians/Figures/scale1.abc new file mode 100644 index 00000000000..e12389adc86 --- /dev/null +++ b/Master/texmf-dist/doc/latex/latex4musicians/Figures/scale1.abc @@ -0,0 +1,3 @@ +X: 1 % start of header +K: C % scale: C major +C D E F G A B c | c d e f g a b c' | diff --git a/Master/texmf-dist/doc/latex/latex4musicians/Figures/shave.abc b/Master/texmf-dist/doc/latex/latex4musicians/Figures/shave.abc new file mode 100644 index 00000000000..7f01d063e4a --- /dev/null +++ b/Master/texmf-dist/doc/latex/latex4musicians/Figures/shave.abc @@ -0,0 +1,10 @@ +%%scale 0.7 + +X: 1 +L: 1/4 +K: C +% +V: 1 +c G/G/ _AG|z !>!B!>!c z|] +V: 2 clef=tab octave=-1 +c G/G/ _AG|z Bc z|] diff --git a/Master/texmf-dist/doc/latex/latex4musicians/Figures/sheet.abc b/Master/texmf-dist/doc/latex/latex4musicians/Figures/sheet.abc new file mode 100644 index 00000000000..4a2d3bad0d7 --- /dev/null +++ b/Master/texmf-dist/doc/latex/latex4musicians/Figures/sheet.abc @@ -0,0 +1,5 @@ +X: 1 +L: 1/4 +K: C +% +c G/G/ _AG|z !>!B!>!c z|] diff --git a/Master/texmf-dist/doc/latex/latex4musicians/Figures/songbook.tex b/Master/texmf-dist/doc/latex/latex4musicians/Figures/songbook.tex new file mode 100644 index 00000000000..0fda4063ff4 --- /dev/null +++ b/Master/texmf-dist/doc/latex/latex4musicians/Figures/songbook.tex @@ -0,0 +1,23 @@ +\documentclass{article} +\usepackage[chordbk]{songbook} +\thispagestyle{empty} + +\begin{document} + +\textbf{Imagine (John Lennon)} + +\medskip + +\emph{Intro, $\times$ 2} + +\Ch{C}~ \Ch{Cmaj7}~ \Ch{F}~ + + \Ch{C}{Imagine} there's \Ch{Cmaj7}{no} \Ch{F}heaven + + \Ch{C}{It's} easy if \Ch{Cmaj7}{you} \Ch{F}{try} + + \Ch{C}No hell \Ch{Cmaj7}{below} \Ch{F}us + + \Ch{C}{Above} us \Ch{Cmaj7}{only} \Ch{F}{sky} + +\end{document} diff --git a/Master/texmf-dist/doc/latex/latex4musicians/Figures/songs.tex b/Master/texmf-dist/doc/latex/latex4musicians/Figures/songs.tex new file mode 100644 index 00000000000..066eb66d44b --- /dev/null +++ b/Master/texmf-dist/doc/latex/latex4musicians/Figures/songs.tex @@ -0,0 +1,24 @@ +\documentclass{article} +\thispagestyle{empty} +\usepackage[chorded]{songs} + +\begin{document} + +\renewcommand{\stitlefont}{\rm\large} +\renewcommand{\lyricfont}{\small} +\renewcommand{\printchord}{\it\small} + +\begin{songs}{} +\beginsong{Imagine}[by={John Lennon}] +\beginverse + \emph{Intro, $\times$ 2} + \[C] \[Cmaj7] \[F] + \[C]Imagine there's \[Cmaj7]no \[F]heaven + \[C]It's easy if \[Cmaj7]you \[F]try + \[C]No hell \[Cmaj7]below \[F]us + \[C]Above us \[Cmaj7]only \[F]sky +\endverse +\endsong +\end{songs} + +\end{document} diff --git a/Master/texmf-dist/doc/latex/latex4musicians/Figures/songs_all.tex b/Master/texmf-dist/doc/latex/latex4musicians/Figures/songs_all.tex new file mode 100644 index 00000000000..5092a2d0ff2 --- /dev/null +++ b/Master/texmf-dist/doc/latex/latex4musicians/Figures/songs_all.tex @@ -0,0 +1,25 @@ +\documentclass[a4paper,12pt]{article} +\thispagestyle{empty} +\usepackage[chorded]{songs} + +\begin{document} + +\begin{songs}{} +\beginsong{Imagine}[by={John Lennon}] + +\gtab{C}{032010:032010} \gtab{Cmaj7}{032000:032000} +\gtab{F}{1:022100} \gtab{G}{3:022100} \gtab{A}{5:022100} + + +\beginverse + \emph{Intro, $\times$ 2} + \[C] \[Cmaj7] \[F] + \[C]Imagine there's \[Cmaj7]no \[F]heaven + \[C]It's easy if \[Cmaj7]you \[F]try + \[C]No hell \[Cmaj7]below \[F]us + \[C]Above us \[Cmaj7]only \[F]sky +\endverse +\endsong +\end{songs} + +\end{document} diff --git a/Master/texmf-dist/doc/latex/latex4musicians/Figures/songs_g.tex b/Master/texmf-dist/doc/latex/latex4musicians/Figures/songs_g.tex new file mode 100644 index 00000000000..86b319e2858 --- /dev/null +++ b/Master/texmf-dist/doc/latex/latex4musicians/Figures/songs_g.tex @@ -0,0 +1,11 @@ +\documentclass{article} +\thispagestyle{empty} +\usepackage[chorded]{songs} + +\begin{document} + +% \gtab{chord name}{fret:strings:fingering} +\gtab{C}{032010:032010} \gtab{Cmaj7}{032000:032000} +\gtab{F}{1:022100} + +\end{document} diff --git a/Master/texmf-dist/doc/latex/latex4musicians/Figures/twinkle.abc b/Master/texmf-dist/doc/latex/latex4musicians/Figures/twinkle.abc new file mode 100644 index 00000000000..7fab5d0e28f --- /dev/null +++ b/Master/texmf-dist/doc/latex/latex4musicians/Figures/twinkle.abc @@ -0,0 +1,38 @@ +X: 1 +% T: Twinkle, Twinkle Little Star +M: 4/4 +L: 1/4 +K: C +% +"C"CCGG|"F"AA"C"G2|"Dm"FF"C"EE|"G"DD"C"C2| +w: Twin-kle, twin-kle lit-le star, how I won-der what you are! +"C"GG"Dm"FF|"C"EE"G"D2|"C"GG"Dm"FF|"C"EE"G"D2| +w: Up a-bove the world so high, like a dia-mond in the sky. +"C"CCGG|"F"AA"C"G2|"Dm"FF"C"EE|"G"DD"C"C2|] +w: Twin-kle, twin-kle lit-le star, how I won-der what you are! +% + +Twinkle, twinkle, little star, +How I wonder what you are! +Up above the world so high, +Like a diamond in the sky. + +When this blazing sun is gone, +When he nothing shines upon, +Then you show your little light, +Twinkle, twinkle, through the night. + +Then the traveller in the dark +Thanks you for your tiny spark; +He could not see where to go, +If you did not twinkle so. + +In the dark blue sky you keep, +And often through my curtains peep, +For you never shut your eye +Till the sun is in the sky. + +As your bright and tiny spark +Lights the traveller in the dark, +Though I know not what you are, +Twinkle, twinkle, little star. diff --git a/Master/texmf-dist/doc/latex/latex4musicians/HOW-TO-TYPESET.md b/Master/texmf-dist/doc/latex/latex4musicians/HOW-TO-TYPESET.md new file mode 100644 index 00000000000..94841f888fd --- /dev/null +++ b/Master/texmf-dist/doc/latex/latex4musicians/HOW-TO-TYPESET.md @@ -0,0 +1,81 @@ +## How to typeset + +This document uses many packages and programs. If you want to typeset +it yourself, this is the list of stuff you'll have to install: + +- Package: musicography. +<https://ctan.org/pkg/musicography> + +- Package: leadsheets. +<https://ctan.org/pkg/leadsheets> + +- Package: lilyglyphs. +<https://ctan.org/pkg/lilyglyphs> + +- Font: Bravura. +<https://www.smufl.org/fonts> + +- Package: guitar. +<https://ctan.org/pkg/guitar> + +- Package: gtrcrd. +<https://ctan.org/pkg/gtrcrd> + +- Package: songs. +<https://ctan.org/pkg/songs> + +- Package: musixguit. +<https://ctan.org/pkg/musixguit> + +- Package: songbook. +<https://ctan.org/pkg/songbook> + +- Program: Chordii. +<https://www.vromans.org/projects/Chordii> + +- Package: gchords. +<https://ctan.org/pkg/gchords> + +- Package: guitarchordschemes. +<https://ctan.org/pkg/guitarchordschemes> + +- Package: guitartabs. +<https://ctan.org/pkg/guitartabs> + +- Page: MusiXTeX and Related Software. +<https://icking-music-archive.org/software/htdocs/htdocs.html> + +- Package: MusiXTeX. +<https://ctan.org/pkg/musixtex> + +- Package: M-Tx. +<https://ctan.org/pkg/m-tx> + +- Package: Gregoriotex. +<https://ctan.org/pkg/gregoriotex> +http://gregorio-project.github.io/gregoriotex +<http://gregorio-project.github.io> + +- Program: LilyPond. +<http://lilypond.org> + +- Package: Lyluatex. +<https://ctan.org/pkg/lyluatex> + +- Programs: abcm2ps, and2svg. +<http://moinejf.free.fr> + +- Program: PMW, Philip’s Music Writer. +<http://people.ds.cam.ac.uk/ph10/pmw.html> + +- Program: MUP. +<http://www.arkkra.com> + +- Program: MuseScore. +<http://musescore.org> + +- Package: Abc. +<https://ctan.org/pkg/abc> + +- Program: abc2xml.ly. +<https://wim.vree.org/svgParse/abc2xml.html> diff --git a/Master/texmf-dist/doc/latex/latex4musicians/Makefile b/Master/texmf-dist/doc/latex/latex4musicians/Makefile new file mode 100644 index 00000000000..9e0c4334848 --- /dev/null +++ b/Master/texmf-dist/doc/latex/latex4musicians/Makefile @@ -0,0 +1,143 @@ +# Makefile for latex4musicians.tex + +VERSION = 2019-01-06 +NAME = latex4musicians +MANUAL = $(NAME).pdf +TEXFILES = $(NAME).tex params.tex + +FIGURES = abctab.pdf bravura.pdf chordii.pdf gchords.pdf \ + gcschemes.pdf gdiagram.pdf glyphs.pdf glyphs_ls.pdf \ + gtablature.pdf gtrcrd.pdf guitar.pdf guitartabs.pdf \ + kyrie.pdf leadsheets.pdf lilyglyphs.pdf lilytab.pdf \ + musicography.pdf musixguit.pdf songbook.pdf songs.pdf \ + songs_g.pdf sample-abc.pdf sample-abc-all.pdf \ + sample-all.pdf sample-latexmtx.pdf sample-lyluatex.pdf \ + sample-lilybook.pdf sample-mtx.pdf sample-pmw.pdf \ + sample-musixtex.pdf sample-songbook.pdf shave.pdf sheet.pdf + +$(MANUAL): $(TEXFILES) $(FIGURES) + pdflatex $(NAME).tex; \ + pdflatex $(NAME).tex; \ + pdflatex $(NAME).tex + +clean: + /bin/rm -Rf *aux *.dep *.lo? *.out *.toc *log \ + *.ps *dvi *mx1 *.ps *.eps out-* *.mx1 *.gtex snippet* \ + *.count *.texi *xml Tmp/ tmp-ly/; \ + cd Figures; /bin/rm -Rf *aux *.dep *.lo? *.out *.toc *log \ + *.ps *dvi *mx1 *.ps *.eps out-* *.mx1 *.gtex snippet* \ + *.count *.texi *xml *pdf + +OTHER = fellow.pdf happyb.pdf julia.pdf scale.pdf twinkle.pdf + +cleanpdf: + /bin/rm -f $(FIGURES) $(OTHER) + +abctab.pdf: Figures/abctab.abc + abc2xml.py -f Figures/abctab.abc > abctab.xml; \ + musescore abctab.xml -o abctab.pdf; + /bin/sh crop.sh abctab.pdf +bravura.pdf: Figures/bravura.tex + /bin/sh ./pdfx.sh bravura.tex +chordii.pdf: Figures/chordii.cho + chordii -a Figures/chordii.cho > chordii.ps; \ + # ps2eps chordii.ps; epstopdf chordii.eps + ps2pdf chordii.ps; \ + /bin/sh crop.sh chordii.pdf +gchords.pdf: Figures/gchords.tex + /bin/sh ./pdfl.sh gchords.tex +gcschemes.pdf: Figures/gcschemes.tex + /bin/sh ./pdfl.sh gcschemes.tex +gdiagram.pdf: Figures/gdiagram.tex + /bin/sh ./pdfl.sh gdiagram.tex +glyphs.pdf: Figures/glyphs.tex + /bin/sh ./pdfx.sh glyphs.tex +glyphs_ls.pdf: Figures/glyphs_ls.tex + /bin/sh ./pdfx.sh glyphs_ls.tex +gtablature.pdf: Figures/gtablature.ly + lilypond Figures/gtablature.ly ; \ + /bin/sh crop.sh gtablature.pdf +gtrcrd.pdf: Figures/gtrcrd.tex + /bin/sh ./pdfl.sh gtrcrd.tex +guitar.pdf: Figures/guitar.tex + /bin/sh ./pdfl.sh guitar.tex +guitartabs.pdf: Figures/guitartabs.tex + /bin/sh ./pdfl.sh guitartabs.tex +kyrie.pdf: Figures/kyrie.tex + cd Figures; \ + lualatex kyrie.tex; \ + /bin/mv kyrie.pdf .. ; \ + cd .. \; + /bin/sh crop.sh kyrie.pdf +leadsheets.pdf: Figures/leadsheets.tex + /bin/sh ./pdfl.sh leadsheets.tex +lilytab.pdf: Figures/lilytab.ly + lilypond Figures/lilytab.ly; \ + /bin/sh crop.sh lilytab.pdf +lilyglyphs.pdf: Figures/lilyglyphs.tex + /bin/sh ./pdfx.sh lilyglyphs.tex +musicography.pdf: Figures/musicography.tex + /bin/sh ./pdfl.sh musicography.tex +musixguit.pdf: Figures/musixguit.tex + /bin/sh ./pdfl.sh musixguit.tex +songbook.pdf: Figures/songbook.tex + /bin/sh ./pdfl.sh songbook.tex +songs.pdf: Figures/songs.tex + /bin/sh ./pdfl.sh songs.tex +songs_g.pdf: Figures/songs_g.tex + /bin/sh ./pdfl.sh songs_g.tex +sample-abc.pdf: Figures/sample-abc.tex + cd Figures; \ + pdflatex --shell-escape sample-abc.tex ; \ + /bin/mv sample-abc.pdf .. ; \ + cd .. ; \ + /bin/sh crop.sh sample-abc.pdf +sample-abc-all.pdf: Figures/sample-abc-all.tex + pdflatex --shell-escape Figures/sample-abc-all.tex ; \ + /bin/sh crop.sh sample-abc-all.pdf +sample-all.pdf: Figures/sample-all.tex + pdflatex -shell-escape Figures/sample-all.tex ; \ + /bin/sh crop.sh sample-all.pdf +sample-latexmtx.pdf: Figures/sample-latexmtx.ltx + cd Figures; \ + musixtex sample-mtx scale sample-latexmtx.ltx; \ + /bin/mv sample-latexmtx.pdf .. ; \ + cd .. ; \ + /bin/sh crop.sh sample-latexmtx.pdf +sample-lilybook.pdf: Figures/sample-lilybook.lytex + lilypond-book -f latex -o ./Tmp/ \ + --lily-output-dir=./Tmp Figures/sample-lilybook.lytex; \ + cd ./Tmp; pdflatex sample-lilybook.tex; \ + /bin/sh ../crop.sh sample-lilybook.pdf; \ + /bin/mv -f sample-lilybook.pdf .. +sample-lyluatex.pdf: Figures/sample-lyluatex.tex + lualatex --shell-escape Figures/sample-lyluatex.tex; \ + /bin/sh crop.sh sample-lyluatex.pdf +# BUG +sample-mtx.pdf: Figures/sample-mtx.mtx + cd Figures; \ + musixtex sample-mtx.mtx; \ + /bin/mv sample-mtx.pdf .. ; \ + cd .. ; \ + /bin/sh crop.sh sample-mtx.pdf +sample-musixtex.pdf: Figures/sample-musixtex.tex + /bin/sh ./pdfl.sh sample-musixtex.tex +sample-pmw.pdf: Figures/sample-pmw.pmw + pmw -includefont Figures/sample-pmw.pmw; \ + ps2pdf Figures/sample-pmw.ps ; \ + /bin/mv Figures/sample-pmw-pdf; \ + /bin/sh crop.sh sample-pmw.pdf +sample-songbook.pdf: Figures/sample-songbook.tex + cd Figures; \ + make -f Makefile.sb; \ + /bin/mv sample-songbook.pdf .. +shave.pdf: Figures/./shave.abc + abc2xml.py Figures/shave.abc > shave.xml; \ + musescore shave.xml -o shave.pdf; \ + /bin/sh crop.sh shave.pdf +sheet.pdf: Figures/./sheet.abc + abcm2ps -c -O= Figures/sheet.abc; + ps2pdf sheet.ps; \ + /bin/sh crop.sh sheet.pdf + +# End of Makefile diff --git a/Master/texmf-dist/doc/latex/latex4musicians/README b/Master/texmf-dist/doc/latex/latex4musicians/README new file mode 100644 index 00000000000..a66059d5378 --- /dev/null +++ b/Master/texmf-dist/doc/latex/latex4musicians/README @@ -0,0 +1,8 @@ +A guide for combining LaTeX and music. + +"LaTeX for Musicians" is a guide that explains how to create LaTeX +documents that include several kinds of music elements: music symbols, +song lyrics, guitar chords diagrams, lead sheets, music excerpts, +guitar tablatures, multi-page scores. + +Brought to you by Guido Gonzato, PhD diff --git a/Master/texmf-dist/doc/latex/latex4musicians/TODO b/Master/texmf-dist/doc/latex/latex4musicians/TODO new file mode 100644 index 00000000000..26cd65f3f1c --- /dev/null +++ b/Master/texmf-dist/doc/latex/latex4musicians/TODO @@ -0,0 +1,5 @@ +Things that could be added: + +- VexTab? +- Verovio? +- tab (https://www.cs.dartmouth.edu/~wbc/lute/AboutTab.html)? diff --git a/Master/texmf-dist/doc/latex/latex4musicians/abctab.pdf b/Master/texmf-dist/doc/latex/latex4musicians/abctab.pdf Binary files differnew file mode 100644 index 00000000000..737c7572292 --- /dev/null +++ b/Master/texmf-dist/doc/latex/latex4musicians/abctab.pdf diff --git a/Master/texmf-dist/doc/latex/latex4musicians/bravura.pdf b/Master/texmf-dist/doc/latex/latex4musicians/bravura.pdf Binary files differnew file mode 100644 index 00000000000..686eed52c2b --- /dev/null +++ b/Master/texmf-dist/doc/latex/latex4musicians/bravura.pdf diff --git a/Master/texmf-dist/doc/latex/latex4musicians/chordii.pdf b/Master/texmf-dist/doc/latex/latex4musicians/chordii.pdf Binary files differnew file mode 100644 index 00000000000..af5c1cc7862 --- /dev/null +++ b/Master/texmf-dist/doc/latex/latex4musicians/chordii.pdf diff --git a/Master/texmf-dist/doc/latex/latex4musicians/crop.sh b/Master/texmf-dist/doc/latex/latex4musicians/crop.sh new file mode 100644 index 00000000000..949ce04dac7 --- /dev/null +++ b/Master/texmf-dist/doc/latex/latex4musicians/crop.sh @@ -0,0 +1,11 @@ +#!/bin/sh + +if [ $# = 0 ]; then + echo "Usage: $0 <file.pdf>" + exit 1 +fi + +NAME=$(basename $1 .pdf) +PDF=$NAME.pdf +pdfcrop $PDF +/bin/mv -f $NAME-crop.pdf $PDF diff --git a/Master/texmf-dist/doc/latex/latex4musicians/gchords.pdf b/Master/texmf-dist/doc/latex/latex4musicians/gchords.pdf Binary files differnew file mode 100644 index 00000000000..171f4378ca4 --- /dev/null +++ b/Master/texmf-dist/doc/latex/latex4musicians/gchords.pdf diff --git a/Master/texmf-dist/doc/latex/latex4musicians/gcschemes.pdf b/Master/texmf-dist/doc/latex/latex4musicians/gcschemes.pdf Binary files differnew file mode 100644 index 00000000000..663d4d3dad2 --- /dev/null +++ b/Master/texmf-dist/doc/latex/latex4musicians/gcschemes.pdf diff --git a/Master/texmf-dist/doc/latex/latex4musicians/gdiagram.pdf b/Master/texmf-dist/doc/latex/latex4musicians/gdiagram.pdf Binary files differnew file mode 100644 index 00000000000..587e8a4432e --- /dev/null +++ b/Master/texmf-dist/doc/latex/latex4musicians/gdiagram.pdf diff --git a/Master/texmf-dist/doc/latex/latex4musicians/glyphs.pdf b/Master/texmf-dist/doc/latex/latex4musicians/glyphs.pdf Binary files differnew file mode 100644 index 00000000000..0172b2680d6 --- /dev/null +++ b/Master/texmf-dist/doc/latex/latex4musicians/glyphs.pdf diff --git a/Master/texmf-dist/doc/latex/latex4musicians/glyphs_ls.pdf b/Master/texmf-dist/doc/latex/latex4musicians/glyphs_ls.pdf Binary files differnew file mode 100644 index 00000000000..9cbce1dd086 --- /dev/null +++ b/Master/texmf-dist/doc/latex/latex4musicians/glyphs_ls.pdf diff --git a/Master/texmf-dist/doc/latex/latex4musicians/gtablature.pdf b/Master/texmf-dist/doc/latex/latex4musicians/gtablature.pdf Binary files differnew file mode 100644 index 00000000000..c72890e9824 --- /dev/null +++ b/Master/texmf-dist/doc/latex/latex4musicians/gtablature.pdf diff --git a/Master/texmf-dist/doc/latex/latex4musicians/gtrcrd.pdf b/Master/texmf-dist/doc/latex/latex4musicians/gtrcrd.pdf Binary files differnew file mode 100644 index 00000000000..2bb8df612c1 --- /dev/null +++ b/Master/texmf-dist/doc/latex/latex4musicians/gtrcrd.pdf diff --git a/Master/texmf-dist/doc/latex/latex4musicians/guitar.pdf b/Master/texmf-dist/doc/latex/latex4musicians/guitar.pdf Binary files differnew file mode 100644 index 00000000000..75d53431ace --- /dev/null +++ b/Master/texmf-dist/doc/latex/latex4musicians/guitar.pdf diff --git a/Master/texmf-dist/doc/latex/latex4musicians/guitartabs.pdf b/Master/texmf-dist/doc/latex/latex4musicians/guitartabs.pdf Binary files differnew file mode 100644 index 00000000000..9b90f3bf69c --- /dev/null +++ b/Master/texmf-dist/doc/latex/latex4musicians/guitartabs.pdf diff --git a/Master/texmf-dist/doc/latex/latex4musicians/kyrie.pdf b/Master/texmf-dist/doc/latex/latex4musicians/kyrie.pdf Binary files differnew file mode 100644 index 00000000000..d5253086f2e --- /dev/null +++ b/Master/texmf-dist/doc/latex/latex4musicians/kyrie.pdf diff --git a/Master/texmf-dist/doc/latex/latex4musicians/latex4musicians.pdf b/Master/texmf-dist/doc/latex/latex4musicians/latex4musicians.pdf Binary files differnew file mode 100644 index 00000000000..732c1bb780b --- /dev/null +++ b/Master/texmf-dist/doc/latex/latex4musicians/latex4musicians.pdf diff --git a/Master/texmf-dist/doc/latex/latex4musicians/latex4musicians.tex b/Master/texmf-dist/doc/latex/latex4musicians/latex4musicians.tex new file mode 100644 index 00000000000..b408262bff9 --- /dev/null +++ b/Master/texmf-dist/doc/latex/latex4musicians/latex4musicians.tex @@ -0,0 +1,2714 @@ +% latex4musicians.tex -*- LaTeX -*- +% +% By Guido Gonzato, PhD <guido.gonzato (at) gmail.com> +% +% Last updated: January 05, 2019 + +\documentclass[a4paper,12pt]{article} +\usepackage{etoolbox} % fix alltt +\usepackage{fancyhdr} % fancy headers +\usepackage{metalogo} % LaTeX logos +\usepackage{wasysym} % for \twonotes +\usepackage{graphicx} % include PDF files +\usepackage[colorlinks,% + linkcolor=darkred,% + urlcolor=darkblue,% + filecolor=darkblue,% + breaklinks=true]% + {hyperref} % URLs and links +\urlstyle{same} % use the same font for links +\usepackage{setspace} % for sources +\usepackage{fancyvrb} % fancy verbatim +\usepackage{pdfpages} % include external pages +\usepackage[breakable]% +{tcolorbox} % shaded boxes +\usepackage{alltt} % for sources + +\include{params} % low-level formatting stuff +\pagestyle{fancy} + +% ----- + +\begin{document} + +\title{\LaTeX{} for {\huge\twonotes{}}usicians} + +\author{Guido Gonzato, PhD} + +\date{Version \version\\ +\today} + +\maketitle + +\begin{center} + \includegraphics{shave.pdf} +\end{center} + +\begin{abstract} + + This guide shows how to create \LaTeX{} documents that include + several kinds of music elements, from very simple to highly complex. + Music features may consist of music symbols, song lyrics, guitar + chords diagrams, lead sheets, music excerpts, guitar tablatures, + multi-page scores. + + Music can be produced by \TeX{} and \LaTeX{} directly using + packages, and also by external scorewriters. Major packages and + programs are listed and briefly described, providing ready-to-use + examples. + +\end{abstract} + +\noteseparator + +\tableofcontents +% \listoftables +% \listoffigures + +\noteseparator + +% ----- + +\section{Introduction} + +~ \hfill% +\begin{minipage}{0.7\linewidth} + \begin{quote} + [And] there is no such hobby that it cannot be combined with \LaTeX. + + ~ \hfill --- \href{http://www.mychemistry.eu/2013/04/guitar-tablatures/} + {Clemens Niederberger} + \end{quote} +\end{minipage} + +\bigskip + +I'm a long-time and enthusiastic \LaTeX{} user, and I'm also an +amateur musician; I play folk music on wind instruments. Years ago, I +used \LaTeX{} to typeset my +\href{http://abcplus.sourceforge.net/#ABCGuide}{ABC notation +tutorial}, which I'm still maintaining. Writing that tutorial, I +included many music snippets along with the corresponding sources, and +I was very satisfied with the result. (I hope that other people are +satisfied, too.) + +Since then, I've become interested in other music notation languages. +I've come across many great programs and many great packages I wasn't +aware of; I've collected many snippets and I've taken notes. I'm +really impressed; there are plenty of options for the musician who is +also a \LaTeX{} user. In fact, \TeX{} can typeset music by itself +using extensions, such as the MusiX\TeX{} family. Besides, \LaTeX{} +can easily include music produced by other programs. + +So, to write \LaTeX{} documents that include music we have to solve +two problems: how do we make the music in a suitable format? And how +do we combine the music with \LaTeX? + +For my own self-training, and hoping to do something useful for other +musicians, I have decided to write this manual that explains how to +solve these problems. In particular, it shows how to create documents +that include many types of music information, from very simple to +highly complex: + +\begin{itemize} + + \item \hyperref[sec:musicsymbols]{music symbols}: + \begin{minipage}[c]{\linewidth} + \includegraphics{glyphs} + \end{minipage} + + \item \hyperref[sec:songbooks]{song lyrics}: + \begin{minipage}[c]{\linewidth} + \includegraphics[width=2cm]{guitar} + \end{minipage} + + \item \hyperref[sec:guitar]{guitar chord diagrams}: + \begin{minipage}[c]{\linewidth} + \includegraphics{gdiagram} + \end{minipage} + + \item \hyperref[sec:sheetmusic]{sheet music}: + \begin{minipage}[c]{\linewidth} + \includegraphics{sheet} + \end{minipage} + + \item \hyperref[sec:tablatures]{guitar tablatures}: + \begin{minipage}[c]{\linewidth} + \includegraphics{gtablature} + \end{minipage} + +\end{itemize} + +This guide aims to provide a roundup of available options, along with +ready-to-use examples. We will examine a few \TeX/\LaTeX{} packages +and several programs that produce high-quality musical output; then we +will learn how to include them in \LaTeX{} documents. + +% ----- + +\subsection{Conventions} + +This document is meant to be consulted in its PDF version, rather than +printed on paper. Links are written in short form whenever possible; +for instance, links to packages are written simply as +\href{https://www.ctan.org/pkg/abc}{abc} instead of +\url{https://www.ctan.org/pkg/abc}. + +Sources (\LaTeX{} or notation languages) are shown in a frame with a +cyan background; the resulting PDF output, when applicable, has a +light background. Command line sessions are shown in a frame, with +user commands emphasised in boldface. + +All software described in this guide is +\href{https://en.wikipedia.org/wiki/Free_and_open-source_software}{free +and open source}. + +% ----- + +\subsection{Preliminaries} + +To begin with, we need a working \LaTeX{} system. I recommend that you +install the latest release of \href{https://www.tug.org/texlive/}{TeX +Live}, which I used to typeset this manual and all included examples +on a GNU/Linux system (TeX Live 2018). On Debian-based GNU/Linux +systems, all you need to do is install \file{texlive-mu\-sic}; all +other needed components will be installed as dependencies. I suppose +that other distributions like \href{https://miktex.org/}{MiKTeX} or +\href{http://www.tug.org/mactex/}{MacTeX} are just as good, but I have +no first-hand experience with them. + +Secondly, we need a Bash-based command line environment; this is +provided by default in GNU/Linux and macOS systems. I recommend that +Windows users install the \href{http://www.msys2.org/}{MSYS2} +platform. + +In most cases, typesetting is done with the common \cmd{pdflatex} +command. Some packages, however, require the \XeLaTeX{} or \LuaLaTeX{} +engines. In that case, you'll also have to install +\file{texlive-xetex} or \file{texlive-luatex}. In this manual, +\cmd{pdflatex} is the default command, unless otherwise specified. + +This manual is not meant to replace the documentation of the packages +and programs that it describes. A few examples are provided to get you +started and to whet your appetite, but in many cases they don't cover +all available features. The package or program documentation is the +primary source of information. + +Finally, I assume that you are reasonably familiar with \LaTeX. Should +you need some information, fine manuals and tutorials are available at +the \href{https://ctan.org/tex-archive/info/}{\LaTeX{} info page}. + +% ----- + +\subsection{Adding Packages} + +TeX Live provides a large number of packages, but in the following +sections we will deal with packages that may not be included in less +recent releases. In this case, you will have to install the missing +package manually. + +The procedure is simple: + +\begin{enumerate} + + \item create this directory structure: + + \verb|$ mkdir -p $HOME/texmf/tex/latex| + + new packages will be installed in this directory tree. + + \item get the package (typically as a zip-compressed directory) from + your favourite CTAN mirror; let's call it \file{foo.zip} + + \item unpack it in the right place: + + \verb|$ mkdir $HOME/texmf/tex/latex/foo| + + \verb|$ mv foo.zip $HOME/texmf/tex/latex/foo| + + \verb|$ cd $HOME/texmf/tex/latex/foo ; unzip foo.zip| + + \item if no \file{.sty} file exists, run the command + \cmd{latex foo.ins} or \cmd{latex foo.dtx} to create it; + + \item run the command \cmd{texhash \$HOME/texmf} + +\end{enumerate} + +Package \pkgname{foo} is now accessible by \LaTeX. + +% ----- + +\subsection{Including PDF files} + +It's reasonable to assume that PDF is the most sensible format for +final output. PostScript, SVG, PNG and other formats will not be +considered, but it's easy to convert PDF files to these formats using +applications like \href{https://inkscape.org}{Inkscape} or +\href{https://www.imagemagick.org}{ImageMagick}. + +Unless you create music directly using \pkgname{MusiXTeX} and related +packages (Section~\ref{sec:musixtex}), your \LaTeX{} document will +include music as PDF files. Such files can be short excerpts, i.e.\ +smaller than a page, or span several pages. These files will be +included with the \ltx{includegraphics} command (package +\pkg{graphicx}) or with the \ltx{include\-pdf} command (package +\pkg{pdfpages}), respectively: + +\begin{source} +\begin{verbatim} +\documentclass[oneside]{article} +\usepackage{graphicx} +\usepackage{pdfpages} +\usepackage[a4paper,margin=1.5cm]{geometry} + +\begin{document} + +This is a short excerpt: + +\includegraphics[width=0.8\textwidth]{sample.pdf} + +Let's now include several pages: + +% pages=- means "all pages" +\includepdf[pages=-,pagecommand={},width=\textwidth]{music.pdf} + +\end{document} +\end{verbatim} +\end{source} + +In the case of short excerpts, we need some means of cropping the PDF +to its actual contents (bounding box); PDF files, in fact, are usually +created as whole pages. Cropping the PDF is accomplished with the free +program \href{http://pdfcrop.sourceforge.net}{pdfcrop}, a Perl script +that depends on \href{https://www.ghostscript.com}{Ghostscript} and +\href{http://pdfedit.cz/en/index.html}{PDFedit}. + +Given a file called \file{music.pdf}, we crop it with these commands: + +\begin{screen} +$ \textbf{pdfcrop music.pdf} +PDFCROP 1.38, 2012/11/02 - Copyright (c) 2002-2012 by Heiko Oberdiek. +==> 1 page written on \verb|`|music-crop.pdf'. +$ \textbf{mv -f music-crop.pdf music.pdf} +$ _ +\end{screen} +% $ + +Pdfcrop doesn't work on MSYS2. However, if you install the official +release of \href{https://ghostscript.com/}{Ghostscript} for Windows, +you can use the following shell script, \cmd{pdfcrop.sh}. It only +works with single-page PDF files: + +\begin{source} +\begin{verbatim} +#!/bin/sh + +# pdfcrop.sh - for MSYS2 and GhostScript +# Guido Gonzato, PhD. GPL 2 or later. + +MYSELF=$(basename $0) + +if [ $# -eq 0 ] ; then + printf "Usage: ${MYSELF} <file.pdf>\n" + printf "This script uses 'gs' to crop a one-page pdf file.\n\n" + exit 1 +fi + +# GhostScript is installed in C:\Gs +GS=/c/gs/gs9.26/bin/gswin64c.exe +INPUT=$1 +PDF=$(basename $1 .pdf) +OUTPUT=$PDF-cropped.pdf +GSOPTS="-q -sDEVICE=bbox -dBATCH -dNOPAUSE" + +# find out the bounding box +$GS $GSOPTS $INPUT 2>&1 | grep "%%B" > $PDF.bbox + +# read bbox coordinates in variables +read tmp X1 Y1 X2 Y2 < $PDF.bbox + +# write the output, cropped to bbox +$GS -q -o $OUTPUT \ + -sDEVICE=pdfwrite \ + -c "[ /CropBox [$X1 $Y1 $X2 $Y2] /PAGES pdfmark" \ + -f $INPUT + +/bin/rm -f $PDF.bbox + +echo "$INPUT cropped to $OUTPUT" +\end{verbatim} +\end{source} + +% $ + +% ----- + +\noteseparator + +% ----- + +\section{Music Symbols} +\label{sec:musicsymbols} + +The simplest music elements we may want to include in our documents +are music symbols (\emph{glyphs}). Standard \LaTeX{} only provides the +math mode commands \ltx{sharp}, \ltx{flat}, and \ltx{natural}: +$\sharp$ $\flat$ $\natural$. Additional glyphs are provided by several +packages; moreover, glyphs provided by music fonts are accessible via +\XeLaTeX{} and Lua\LaTeX. + +% ----- + +\subsection{Using Packages} + +The impressive +\href{http://tug.ctan.org/info/symbols/comprehensive/symbols-a4.pdf}% +{Comprehensive LaTeX Symbol List}, Section 7, lists packages that +provide a handful of music symbols: \pkg{textcomp}, \pkg{mnsymbol}, +\pkg{fdsymbol}, \pkg{boisik}, \pkg{wasysym}, \pkg{stix}, and +\pkg{arev}. + +More symbols are provided by \pkg{musicography}, \pkg{leadsheets}, and +\pkg{harmony}. These packages work with \cmd{pdflatex}, but still +provide a fairly limited number of glyphs. Besides, there could be +incompatibility between packages because of commands defined using the +same name. + +% TODO: figure out what harmony glyphs are for... + +% ----- + +\subsubsection{Package \pkg{musicography}} + +This package may be missing in less recent releases of TeX Live, so +you might have to install it manually. If you only need a limited +number of glyphs, then \pkg{musicography} may do the job: + +\begin{source} +\begin{verbatim} +\documentclass{article} +\usepackage{musicography} +\thispagestyle{empty} + +\begin{document} + +Musicography makes the music symbol font provided by MusiX\TeX\ +available as text font and then uses it to define a number +of symbols: + +\musFlat\ \musSharp\ \musNatural\ \musDoubleFlat\ \musDoubleSharp\ +\musWhole\ \musHalf\ \musQuarter\ \musEighth\ \musSixteenth\ +\musWholeDotted\ \musHalfDotted\ \musQuarterDotted\ +\musEighthDotted\ \musSixteenthDotted\ +\meterC\ \meterCutC\ \meterCThree\ \meterCThreeTwo\ \meterCZ\ +\musMeter{7}{8} + +\end{document}\end{verbatim} +\end{source} + +\score{musicography} + +% ----- + +\subsubsection{Package \pkg{leadsheets}} + +If you only need a limited number of glyphs, then also +\pkg{leadsheets} may do the job: + +\begin{source} +\begin{verbatim} +\documentclass{article} +\usepackage[minimal]{leadsheets} +\useleadsheetslibraries{musicsymbols} +\thispagestyle{empty} + +\begin{document} + +Leadsheets makes the music symbol font provided by MusiX\TeX\ +available as text font and then uses it to define a number +of symbols: + +\sharp\ \doublesharp\ \flat\ \doubleflat\ \natural\ +\trebleclef\ \altoclef\ \bassclef\ \meterC\ \allabreve\ +\meter{12}{8}\ \wholerest\ \halfrest\ \quarterrest\ +\eighthrest\ \sixteenthrest\ \Break\ \normalbar\ +\leftrepeat\ \rightrepeat\ \leftrightrepeat\ \doublebar\ +\stopbar + +\end{document} +\end{verbatim} +\end{source} + +\score{glyphs_ls} + +% ----- + +\subsubsection{Package \pkg{lilyglyphs}} + +By far, the most complete source of music glyphs is the +\pkg{lilyglyphs} package. It provides all the symbols available in the +\href{http://lilypond.org/doc/v2.18/Documentation/notation/the-feta-font} +{Emmentaler} music font, which is used by the +\href{http://lilypond.org}{LilyPond} scorewriter +(Section~\ref{sec:lilypond}). \pkgname{Lilyglyphs} only works with +\XeLaTeX{} and \LuaLaTeX, and is incompatible with +\pkgname{leadsheets} and \pkgname{MusiXTeX}. Available glyphs and +corresponding commands are listed in Section 3 of the package +documentation. + +This is a very small example of what \pkgname{Lilyglyphs} provides: + +\begin{source} +\begin{verbatim} +\documentclass{article} +\usepackage{fontspec} +\usepackage{lilyglyphs} +\thispagestyle{empty} % no page number + +\begin{document} + +Lilyglyphs makes the music symbol font provided by LilyPond available +as text font and then uses it to define a number of symbols, some +\clefGInline\ of which \clefCInline\ can be used \clefFInline\ inline: + +clefs:~ \clefG\ \clefC\ \clefF\ ~time signatures:~ +\lilyTimeC\ \lilyTimeCHalf\ \lilyTimeSignature{7}{8}\ +~accidentals:~ \sharp\ \flat\ \natural\ \doublesharp\ \flatflat\ +~rests:~ \wholeNoteRest\ \halfNoteRest\ \crotchetRest\ +~notes:~ \wholeNote\ \halfNote\ \halfNoteDown\ \quarterNote\ +\quarterNoteDotted\ +~and much, much more. + +\end{document} +\end{verbatim} +\end{source} + +\score{lilyglyphs} + +% ----- + +\subsection{Using Music Fonts} + +The \XeLaTeX{} and Lua\LaTeX{} engines use Unicode input by default +and support OTF/TTF fonts. We can use these engines to print any +character provided by locally installed fonts; these can be listed +with the \cmd{fc-list} command, provided by the +\href{https://www.fontconfig.org/}{Fontconfig} software. + +Some fonts are especially useful for music. Specifically, +\href{https://www.smufl.org/fonts}{Bravura} is a free, +SMuFL-compliant music font that provides thousands of high-quality +music glyphs. Bravura is available in OpenType format as +\file{Bravura.otf} and \file{BravuraText.otf}; the first is used for +drawing music symbols in scores, the second for inserting music +symbols in text. + +Each glyph is mapped to a numerical code called \emph{code point}; +a comprehensive list of glyphs and the corresponding code points is +available at \url{https://www.smufl.org/version}. + +The following source shows how to use the glyphs provided by Bravura. +We can define new commands for commonly used glyphs, or directly use +the \ltx{char"XXXX} syntax to print Unicode characters specifying +their code point. The fonts are expected to be installed in +\path{/usr/share/fonts/}; if you install the fonts in a different +directory, you'll also have change the following source accordingly: + +\begin{source} +\begin{verbatim} +\documentclass{article} +\usepackage{fontspec} +\thispagestyle{empty} +\newfontfamily\brtxt{BravuraText.otf}[Path=/usr/share/fonts/] +\newfontfamily\brv{Bravura.otf}[Path=/usr/share/fonts/] + +\newcommand{\clefGi} {{\brtxt \char"E050}} +\newcommand{\clefCi} {{\brtxt \char"E05C}} +\newcommand{\clefFi} {{\brtxt \char"E062}} + +\newcommand{\clefG} {{\brv \char"E050}} +\newcommand{\clefC} {{\brv \char"E05C}} +\newcommand{\clefF} {{\brv \char"E062}} +\newcommand{\timeC} {{\brv \char"E08A}} +\newcommand{\timeCHalf} {{\brv \char"E08B}} +\renewcommand{\flat} {{\brv \char"E260}} +\renewcommand{\natural} {{\brv \char"E261}} +\renewcommand{\sharp} {{\brv \char"E262}} +\newcommand{\wholeNote} {{\brv \char"E1D2}} +\newcommand{\halfNote} {{\brv \char"E1D3}} +\newcommand{\halfNoteDown}{{\brv \char"E1D4}} +\newcommand{\quarterNote} {{\brv \char"E1D5}} + +\begin{document} + +The Bravura and BravuraText Music fonts provide thousands of music +symbols. BravuraText glyphs are specifically \clefGi\ designed +\clefFi\ to be used \clefCi\ inline: + +clefs:~ \clefG\ \clefC\ \clefF\ ~time signatures:~ +\timeC\ \timeCHalf\ ~accidentals:~ \sharp\ \flat\ \natural\ +~notes:~ \wholeNote\ \halfNote\ \halfNoteDown\ \quarterNote\ +~and much, much more. + +\end{document} +\end{verbatim} +\end{source} + +\score{bravura} + +% ----- + +\noteseparator + +% ----- + +\section{Song Lyrics} +\label{sec:songbooks} + +Several packages make it possible to typeset song lyrics, with varying +degrees of complexity. For instance, we may want to write lyrics only; +other useful features include chords above lyrics, guitar chords +diagrams, transposition, index generation, etc. + +% ----- + +\subsection{Package \pkg{guitar}} +\label{sec:pkgguitar} + +This is a very basic and simple to use package that provides a +\env{guitar} environment to add chords above lyrics. A minimal +example: + +\begin{source} +\begin{verbatim} +\documentclass{article} +\thispagestyle{empty} +\usepackage{guitar} + +\begin{document} + +\begin{guitar} + \textbf{Imagine (John Lennon)} + + \emph{Intro, $\times$ 2} + % use tilde to add some space + [C] ~ [Cmaj7] ~ [F] ~ + % if chords overlap, add | at the end of the chord, like: + [C]Imagine there's [Cmaj7|]{no} [F]heaven + [C]It's easy if [Cmaj7|]{you} [F]try + [C]No hell [Cmaj7|]{below} [F]us + [C]Above us [Cmaj7|]{only} [F]sky +\end{guitar} + +\end{document} +\end{verbatim} +\end{source} + +\scoreshort{guitar} + +% ----- + +\subsection{Package \pkg{gtrcrd}} + +This is another basic and simple to use package, with some +customisation options. Chords overlaps need manual adjustment. + +\begin{source} +\begin{verbatim} +\documentclass{article} +\thispagestyle{empty} +\usepackage{gtrcrd} + +\setlength{\crdheight}{2ex} % reduce spacing +\def\crdfont{\footnotesize \itshape \sffamily} % chord font +\setlength{\parindent}{0pt} + +\begin{document} + +\textbf{Imagine (John Lennon)} + +\emph{Intro, $\times$ 2} + +% if chords overlap, use \hspace: +\C {\hspace{3mm}} \C[maj7] {\hspace{10mm}} \F ~ + +\C Imagine there's \C[maj7] no {\hspace{5mm}} \F heaven + +\C It's easy if \C[maj7] you {\hspace{2mm}} \F try + +\C No hell \C[maj7] below \F us + +\C Above us \C[maj7] only {\hspace{2mm}} \F sky +\end{document} +\end{verbatim} +\end{source} + +\scoreshort{gtrcrd} + +% ----- + +\subsection{Package \pkg{songs}} +\label{sec:pkgsongs} + +This is a very powerful package that provides many features: chords +above lyrics, guitar chords diagrams, transposition, index generation, +multiple co\-lumns, and more. It allows for the creation of complete +songbooks; its guitar chord diagrams capabilities will be explained in +Section~\ref{sec:songs_cd}. + +\begin{source} +\begin{verbatim} +\documentclass{article} +\thispagestyle{empty} +\usepackage[chorded]{songs} + +\begin{document} + +\renewcommand{\stitlefont}{\rm\large} +\renewcommand{\lyricfont}{\small} +\renewcommand{\printchord}{\it\small} + +\begin{songs}{} +\beginsong{Imagine}[by={John Lennon}] +\beginverse + \emph{Intro, $\times$ 2} + \[C] \[Cmaj7] \[F] + \[C]Imagine there's \[Cmaj7]no \[F]heaven + \[C]It's easy if \[Cmaj7]you \[F]try + \[C]No hell \[Cmaj7]below \[F]us + \[C]Above us \[Cmaj7]only \[F]sky +\endverse +\endsong +\end{songs} + +\end{document} +\end{verbatim} +\end{source} + +\scoreshort{songs} + +% ----- + +\subsection{Package \pkg{musixguit}} + +This package is integrated with \pkg{musixtex} +(Section~\ref{sec:musixtex}), and is also capable of producing sheet +music and guitar chord diagrams. Its documentation is written in +German; if you can't read it don't worry, the provided examples are +easy to understand. Chords overlaps need manual adjustment. A minimal +example: + +\begin{source} +\begin{verbatim} +\documentclass{article} +\usepackage{musixguit} +\thispagestyle{empty} + +\begin{document} + +\textbf{Imagine (John Lennon)} + +\begin{song} + +\emph{Intro, $\times$ 2} + +\chord{C} ~ \chord{Cmaj7} {\hspace{8mm}} \chord{F} + +\chord{C}Imagine there's \chord{Cmaj7}no~~~ \chord{F}heaven + +\chord{C}It's easy if \chord{Cmaj7}you~~ \chord{F}try + +\chord{C}No hell \chord{Cmaj7}below \chord{F}us + +\chord{C}Above us \chord{Cmaj7}only~ \chord{F}sky + +\end{song} + +\end{document} +\end{verbatim} +\end{source} + +\scoreshort{musixguit} + +% ----- + +\subsection{Package \pkg{leadsheets}} + +This package provides many features: music symbols, chords, MuseJazz +style, a \env{song} and a \env{verse} environment, transposition, a +\cmd{leadsheet} class, and templates. Overall, this package allows for +the creation of complete songbooks. A minimal example: + +% \medskip + +\begin{source} +\begin{verbatim} +\documentclass{article} +\usepackage[full]{leadsheets} +\thispagestyle{empty} + +\begin{document} + +\begin{song}{title={Imagine}, music={John Lennon}} +\begin{verse} + + \chord{C}Imagine there's \chord{Cmaj7}no \chord{F}heaven + + \chord{C}It's easy if \chord{Cmaj7}you \chord{F}try + + \chord{C}No hell \chord{Cmaj7}below \chord{F}us + + \chord{C}Above us \chord{Cmaj7}only \chord{F}sky + +\end{verse} +\end{song} + +\end{document} +\end{verbatim} +\end{source} + +\scoreshort{leadsheets} + +% ----- + +\subsection{Package \pkg{songbook}} + +This is another powerful package that provides support for chords, +songs, overhead transparencies, and index generation. A minimal +example: + +% \medskip + +\begin{source} +\begin{verbatim} +\documentclass{article} +\usepackage[chordbk]{songbook} +\thispagestyle{empty} + +\begin{document} + +\textbf{Imagine (John Lennon)} + +% \medskip + +\emph{Intro, $\times$ 2} + +\Ch{C}~ \Ch{Cmaj7}~ \Ch{F}~ + + \Ch{C}{Imagine} there's \Ch{Cmaj7}{no} \Ch{F}heaven + + \Ch{C}{It's} easy if \Ch{Cmaj7}{you} \Ch{F}{try} + + \Ch{C}No hell \Ch{Cmaj7}{below} \Ch{F}us + + \Ch{C}{Above} us \Ch{Cmaj7}{only} \Ch{F}{sky} + +\end{document} +\end{verbatim} +\end{source} + +\scoreshort{songbook} + +% ----- + +\subsection{Program: \href{https://www.vromans.org/projects/Chordii/} +{chordii}} + +Chordii is a free command-line program, released under the +\href{https://www.gnu.org/licenses/licenses.en.html}{GNU GPL}. It uses +a simple text notation to typeset songs in PostScript format, complete +with chords and guitar chord grid. + +This is the source of a song written in Chordii format: + +\begin{source} +\begin{verbatim} +{titles:left} +{title:Imagine} +{st:John Lennon} + +(Intro, x 2) +[C] [Cmaj7] [F] +[C]Imagine there's [Cmaj7]no [F]heaven +[C]It's easy if [Cmaj7]you [F]try +[C]No hell [Cmaj7]below [F]us +[C]Above us [Cmaj7]only [F]sky +\end{verbatim} +\end{source} + +% \medskip + +We typeset the score with these commands: + +\begin{screen} +$ \textbf{chordii -a imagine.cho > imagine.ps} +$ \textbf{ps2pdf imagine.ps} +$ _ +\end{screen} +% $ + +The \cmd{-a} switch means ``Automatic single space lines without +chords''. The resulting song is: + +\bigskip + +\scoreshort{chordii} + +\bigskip + +The chord grid at the bottom is automatically added by the program. + +% ----- + +\noteseparator + +% ----- + +\section{Guitar Chord Diagrams} +\label{sec:guitar} + +Guitar players may need to print \emph{guitar chords diagrams} and +\emph{guitar tablatures}; both can be made with \LaTeX{} packages and +external programs. As a matter of fact, these musical features are not +limited to the guitar; chord diagrams and tablatures apply to other +stringed instruments as well. + +Tablatures are a form of musical notation that is usually employed to +show how a \emph{melody} should be fingered on the fretboard. Since +tablatures are just a special form of music notation, we will deal +with them after the section about sheet music. For the moment, let's +see how to do guitar chord diagrams. + +% ----- + +\subsection{Package \pkg{gchords}} +\label{sec:gchords} + +This package makes it possible to print guitar chord diagrams using +the \ltx{chord} command that employs a simple syntax: + +\medskip + +\ltx{chord}{\emph{\{fret +number\}}}{\emph{\{fingering\}}}{\emph{\{chord name\}}} + +\begin{itemize} + + \item \emph{fret number} can be \texttt{\{t\}}, which means top + fret, or \texttt{\{t\}} followed by a digit that denotes the fret; + + \item \emph{fingering} is explained in the example below; + + \item \emph{chord name} is the given chord name. + +\end{itemize} + +The \ltx{chords} command prints a row of chords, each defined by a +\ltx{chord} command: + +\begin{source} +\begin{verbatim} +\documentclass{article} +\usepackage{gchords} +\thispagestyle{empty} + +\begin{document} + +\def\numfrets{4} + +\chords{ % print a row of chords +% fingers: n, x, o, p{n}, f{n} +% C chord: finger 3 pos. 3, finger 2 pos. 2, finger 1 pos. 1 +\chord{t}{n,f3p3,f2p2,n,f1p1,n}{C} +\chord{t}{n,n,p2,p2,p1,n}{Am} +\chord{t}{x,n,n,p2,p3,p1}{Dm} +\chord{t3}{n,p2,n,p1,n,n}{G7 (ugly)} +{\tiny % font size for string labels, t{X} +\chord{t}{t{E}n,t{A}n,t{D}n,t{G}n,t{B}n,t{e}n} +{std. tuning} } +} + +\end{document} +\end{verbatim} +\end{source} + +\scoreshort{gchords} + +% ----- + +\subsection{Package \pkg{songs}} +\label{sec:songs_cd} + +We met this package in Section~\ref{sec:pkgsongs}. It provides an +easy way to print guitar chord diagrams (referred to as ``guitar +tablatures'' in the package). The \ltx{gtab} command defines chord +diagrams using a very simple syntax: + +\medskip + +\ltx{gtab}{\emph{\{chord name\}}} +{\emph{\{fret:strings:fingering\}}} + +\begin{itemize} + + \item \emph{chord name} is the given chord name; + + \item \emph{fret} is an optional fret number; + + \item \emph{strings} is a string of digits denoting the strings that + compose the chord; + + \item \emph{fingering} is an optional string of digits denoting the + fingers to use. + +\end{itemize} + +\begin{source} +\begin{verbatim} +\documentclass{article} +\thispagestyle{empty} +\usepackage[chorded]{songs} + +\begin{document} + +% \gtab{chord name}{fret:strings:fingering} +\gtab{C}{032010:032010} \gtab{Cmaj7}{032000:032000} +\gtab{F}{1:022100} + +\end{document} +\end{verbatim} +\end{source} + +\scoreshort{songs_g} + +% ----- + +\subsection{Package \pkg{guitarchordschemes}} + +This package enables the creation of large guitar chord diagrams. The +main command is \ltx{chordscheme}, and is quite self-explanatory: + +\begin{source} +\begin{verbatim} +\documentclass{article} +\usepackage{guitarchordschemes} +\thispagestyle{empty} + +\begin{document} + +\chordscheme[ +name = G (Sol), % chord name +position = 1, % first fret position +finger = {2/5:2} , % fret, string, finger +finger = {3/6:3} , % fret, string, finger +finger = {3/1:4} , % fret, string, finger +ring = {2,3,4} % open strings +] +% +\chordscheme[ +name = G (Sol) barre, +position = 3, +barre = 1/1-6, % fret, string range +finger = {2/3:2}, +finger = {3/5:3}, +finger = {3/4:4}, +] + +\end{document} +\end{verbatim} +\end{source} + +\scoreshort{gcschemes} + +% ----- + +\noteseparator + +% ----- + +\section{Sheet Music} +\label{sec:sheetmusic} + +In this section, we will learn how to produce sheet music in PDF +format for inclusion in \LaTeX{} documents. Sheet music can be +produced by \TeX{} itself, but we can use the output produced by one +of the several free and open source scorewriters. + +In the next few sections, we will briefly examine each option. Musical +notation languages will not be explained; sources are listed to give +practical examples and to assess the language complexity. + +% ----- + +\subsection{Packages \pkg{musixtex}, \pkg{m-tx}} +\label{sec:musixtex} + +In the beginning, \TeX{} could not typeset music, and everyone was +unhappy. Then the \pkg{mtex} (aka \pkgname{MuTeX}) package was +created, but it was limited and not very easy to use. Then +\pkgname{MuTeX} begat \pkgname{MusicTeX}, which begat \pkg{pmtex}; +then \pkgname{MusicTeX} begat \pkg{musixtex}, which begat \pkg{pmx}, +which begat \pkg{m-tx}. I hope I got the storyline right. Each package +was a simpler interface to its predecessors. + +In reverse order: \pkgname{M-Tx} is a preprocessor to \pkgname{PMX}, +which in turn is a preprocessor for \pkgname{MusiXTeX}, which does the +actual music typesetting via \TeX. It goes without saying that +\pkgname{M-Tx} is the simplest to use, while \pkgname{MusiXTeX} is the +most difficult to use but also the most powerful. Other packages +related to \pkgname{MusiXTeX} are the following: + +\begin{itemize} + + \item \pkg{autosp} generates note-spacing commands for + \pkgname{MusiXTeX} scores; + + \item \pkg{bagpipe} provides support for typesetting bagpipe music; + + \item \pkg{bizantinemusic} facilitates the writing of Byzantine + music; + + \item \pkg{figbas} provides mini fonts for figured bass notation; + + \item \pkg{gregoriotex} provides engraving of Gregorian Chant + (Section~\ref{sec:gregoriotex}); + + \item \pkg{lyluatex} provides commands to include LilyPond scores in + Lua\LaTeX{} documents (Section~\ref{sec:lyluatex}); + + \item \pkg{musixtnt} is an extension library that enables + transformations of the effect of notes commands; + + \item \pkg{pmxchords} produces chord information to go with pmx + output; + + \item \pkg{snote} provides shape notes for \pkgname{MusixTeX}; + + \item \pkg{texmuse} is a music typesetting system using \TeX{} + and Metafont. + +\end{itemize} + +\pkgname{MusiXTeX} is quite low-level, and the user must take care of +such details as beam slope and note spacing; several examples are +available +\href{https://ctan.org/tex-archive/macros/musixtex/doc/examples}{here}. +\pkgname{MusiXTeX} input can also be embedded in \LaTeX{} documents: + +\begin{source} +\begin{verbatim} +\documentclass{article} +\usepackage{musixtex} +\thispagestyle{empty} + +\begin{document} + +A short music excerpt in MusiX\TeX: + +\medskip + +\begin{music} + \smallmusicsize + \instrumentnumber{1} + \setstaffs1{1} + \generalmeter{\meterC} + \nobarnumbers + \startextract + % bar 1 + \Notes \qu c \en % C + \notes \ibu1d2\qb1d\tbu1\qb1e \en % beamed DE + \notes \ibu1g2\qb1f\qb1g% + \qb1{'a}\tbu1\qb1b \en % beamed FGAB + \bar % bar 2 + \Notes \ql{'c} \en % c + \notes \ibu1{'b}{-3}% + \qb1b\tbu1\qb1a \en % beamed BA + \notes \ibu1{g}{-3}% + \qb1g\qb1f\qb1e\tbu1\qb1d \en % beamed GFED + \bar % bar 3 + \notes \ibu1f0\qb1c\qb1g\qb1e\tbu1\qb1g% % beamed CGEG + \ibu1f0\qb1c\qb1g\qb1e\tbu1\qb1g \en % beamed CGEG + \bar % bar 4 + \Notes \qu c\qu e\qu c\qp \en % CEC + \endextract + +\end{music} + +End of the excerpt. +\end{document} +\end{verbatim} +\end{source} + +\score{sample-musixtex} + +\bigskip + +It looks a bit arcane, and I'll point you to the +\href{http://mirrors.ctan.org/macros/musixtex/doc/musixdoc.pdf} +{documentation} for explanations. + +\pkgname{M-Tx} employs a much simpler notation than +\pkgname{MusiXTeX}. This is a standalone music sample +(\file{sample-mtx.mtx}) that produces the same music as the above +\pkgname{MusiXTeX} score: + +\begin{source} +\begin{verbatim} +% music sample in M-Tx notation + +Title: Music sample in M-tx +Style: Solo +Meter: C +Width: 140mm + +c4 d8 e f g a b | c4 b8 a g f e d | c8 g+ e g c- g+ e g | c4- e c r | +\end{verbatim} +\end{source} + +We typeset the score with this command: + +\begin{screen} +$ \textbf{musixtex sample-mtx.mtx} +This is musixtex.lua version 0.17a. +==> This is M-Tx 0.62 (Music from TeXt) <08 February 2016> +==>> Input from file sample-mtx.mtx +... +sample-mtx.pdf generated by ps2pdf. +$ _ +\end{screen} +% $ + +which produces \file{sample-mtx.pdf}. In older versions of +\pkgname{M-Tx}, the command was \cmd{m-tx}, which has been retired and +replaced by \cmd{musixtex}. This is the resulting score: + +\bigskip + +\score{sample-mtx} + +\bigskip + +Music in \pkgname{M-Tx} format can be easily included in \LaTeX{} +documents. \pkgname{M-Tx} provides the \env{Score}, \env{excerpts}, +and \env{mus} environments to include complete pieces, short excerpts, +and inline short excerpts respectively. Let's see how to use +\cmd{excerpts} and \cmd{mus}; a few steps are required. + +First of all, the \LaTeX{} source that includes the \pkgname{M-Tx} +music files must not have a \file{.tex} extension; \file{.ltx} or +\file{.latex} are ok. Let's call our sample file +\file{sample-latexmtx.ltx}. + +Secondly, we need the \file{mtxlatex.sty} style file, which is not +installed by default but is found in the \pkgname{M-Tx} documentation +directory. In TeX Live, \file{mtxlatex.sty} is located in directory +\path{/usr/share/doc/texlive-doc/generic/m-tx}. This file must be +copied to the same directory as the source file; all included +\pkgname{M-Tx} files must be copied there too. + +We already met \file{sample-mtx.mtx}; the following is another short +excerpt called \file{scale.mtx}. It produces a 30mm wide scale: + +\begin{source} +\begin{verbatim} +Style: Solo +Meter: C +Size: 13pt +Width: 30mm + +c8 d e f g2 | +\end{verbatim} +\end{source} + +Finally, this is the main file \file{sample-latexmtx.ltx}: + +\begin{source} +\begin{verbatim} +\documentclass[12pt]{article} +\usepackage{mtxlatex} % usually not installed +\thispagestyle{empty} + +\mtxlatex + +\begin{document} + +This \LaTeX{} document includes music written in M-Tx. The \texttt{mus} +environment includes music inline: \begin{mus} \input{scale.tex} +\end{mus} , while the \texttt{excerpts} environment is used for longer +excerpts: + +\medskip + +\begin{excerpts} + \input{sample-mtx.tex} +\end{excerpts} + +\medskip + +End of document. + +\end{document} +\end{verbatim} +\end{source} + +We typeset the document with this command: + +\begin{screen} +$ \textbf{musixtex sample-mtx scale sample-latexmtx.ltx} +... +sample-latexmtx.pdf generated by ps2pdf. +$ _ +\end{screen} +% $ + +Please note that we omitted the \pkgname{M-Tx} file extensions, and +that the main file is the last in the command line. We obtain this +output: + +\bigskip + +\score{sample-latexmtx} + +\bigskip + +Please also note that the \pkgname{M-Tx} excerpts cannot be resized as +if they were included PDF files: their geometry is set in the +\pkgname{M-Tx} source! + +% ----- + +\subsection{Package \pkg{gregoriotex}} +\label{sec:gregoriotex} + +This package typesets Gregorian chant. Input is in GABC format, a +simple text notation inspired by the +\href{http://abcnotation.com/}{ABC notation} that we'll examine later +on. Conversion requires Lua\LaTeX. + +This is a sample GABC source, \file{kyrie.gabc}, taken from the +package documentation: + +\begin{source} +\begin{alltt} +name:Kyrie XVII; +%% +(c4)KY(f)ri(gfg)e(h.) *() +e(ixjvIH'GhvF'E)l\'e(ghg')i(g)son.(f.) +<i>bis</i>(::) +\end{alltt} +\end{source} + +We also need a \LaTeX{} source, \file{kyrie.tex}: + +\begin{source} +\begin{verbatim} +\documentclass{article} +\thispagestyle{empty} +\usepackage[autocompile]{gregoriotex} + +\begin{document} + +\gregorioscore{kyrie} + +\end{document} +\end{verbatim} +\end{source} + +We typeset the score with this command: + +\begin{screen} +$ \textbf{lualatex kyrie.tex} +... +Output written on kyrie.pdf (1 page, 11290 bytes). +Transcript written on kyrie.log. +$ _ +\end{screen} +% $ + +\scoreshort{kyrie} + +% ----- + +\subsection{Program: \href{http://lilypond.org/}{LilyPond}} +\label{sec:lilypond} + +LilyPond is a free and multiplatform scorewriter, released under the +GNU GPL. From the LilyPond home page: + +\begin{quote} + +LilyPond is a music engraving program, devoted to producing the +highest-quality sheet music possible. It brings the aesthetics of +traditionally engraved music to computer printouts. LilyPond is free +software and part of the \href{http://gnu.org/}{GNU Project}. + +\end{quote} + +LilyPond uses a simple text notation for music input; output is PDF by +default. This is our usual music sample in LilyPond format, +\file{sample-lily\-pond.ly}: + +\begin{source} +\begin{verbatim} +% music sample in LilyPond notation + +\version "2.18.2" + +\paper{ + indent = 0 \mm +} + +\header { + title = "Music sample in LilyPond" + tagline = "" % no footer +} + +\relative c' { + \time 4/4 + \clef treble + c4 d8 e f8 g a b | c4 b8 a g8 f e d | + c8 g' e g c,8 g' e g | c,4 e c r \bar "|." +} +\end{verbatim} +\end{source} + +We typeset the document with this command: + +\begin{screen} +$ \textbf{lilypond sample-lilypond.ly} +GNU LilyPond 2.18.2 +Processing `sample-lilypond.ly' +Parsing... +Interpreting music... +Preprocessing graphical objects... +Finding the ideal number of pages... +Fitting music on 1 page... +Drawing systems... +Layout output to `sample-lilypond.ps'... +Converting to `./sample-lilypond.pdf'... +Success: compilation successfully completed +$ _ +\end{screen} +% $ + +\bigskip + +LilyPond is capable of typesetting many different kinds of music, and +it is among the most complete and powerful scorewriters available. If +you want to find out more, the documentation page is +\href{http://lilypond.org/manuals.html}{here}. + +% ----- + +\subsubsection{\cmd{lilypond-book}} + +LilyPond also provides the \cmd{lilypond-book} command that can be +used to easily embed LilyPond sources in special \LaTeX{} documents. +These should have a \cmd{.lytex} extension, like the following source +(\cmd{sample-lilybook.lytex}): + +\begin{source} +\begin{verbatim} +\documentclass{article} +\thispagestyle{empty} + +\begin{document} + +This is a LilyPond snippet \begin{lilypond} {c' e' g'} +\end{lilypond} embedded in the \LaTeX{} source. + +This is another LilyPond excerpt that uses the \texttt{lilypond} +environment: + +\medskip + +\begin{lilypond} + \score { + << + \relative c' { + \time 4/4 + \clef treble + c4 d8 e f8 g a b | c4 b8 a g8 f e d | + c8 g' e g c,8 g' e g | c,4 e c r \bar "|." + } + >> + } % end of score +\end{lilypond} + +\medskip + +End of document. + +\end{document} + +\end{verbatim} +\end{source} + +We typeset the score with these commands: + +\begin{screen} +$ \textbf{lilypond-book -f latex -o /tmp \textbackslash + --lily-output-dir=/tmp sample-lilybook.lytex} +lilypond-book (GNU LilyPond) 2.18.2 +... +Writing `/tmp/sample-lilybook.tex'... +$ \textbf{cd /tmp} +$ \textbf{pdflatex sample-lilybook.tex} +... +Output written on sample-lilybook.pdf (1 page, 60934 bytes). +Transcript written on sample-lilybook.log. +$ _ +\end{screen} +% $ + +\bigskip + +\score{sample-lilybook} + +% ----- + +\subsubsection{Package \pkg{lyluatex}} +\label{sec:lyluatex} + +This package may be missing in less recent releases of TeX Live, so +you might have to install it manually. \pkgname{Lyluatex} provides a +native Lua\LaTeX{} environment that offers the same functionality as +\cmd{lilypond-book}, even though the output is different. This source +is \file{sample-lyluatex.tex}: + +\begin{source} +\begin{verbatim} +\documentclass{article} +\usepackage{lyluatex} +\thispagestyle{empty} + +\begin{document} + +This is a LilyPond snippet \lilypond{c' e' g'} embedded in the text +using the \verb|\lilypond| command. + +This is another LilyPond excerpt that uses the \texttt{lilypond} +environment: + +\medskip + +\begin{lilypond} + \score { + << + \relative c' { + \time 4/4 + \clef treble + c4 d8 e f8 g a b | c4 b8 a g8 f e d | + c8 g' e g c,8 g' e g | c,4 e c r \bar "|." + } + >> + } % end of score +\end{lilypond} + +\medskip + +End of document. + +\end{document} +\end{verbatim} +\end{source} + +We typeset the score with this command: + +\begin{screen} +$ \textbf{lualatex --shell-escape sample-lyluatex.tex} +... +Output written on sample-lyluatex.pdf (1 page, 22334 bytes). + Transcript written on sample-lyluatex.log. +$ _ +\end{screen} +% $ + +\score{sample-lyluatex} + +% ----- + +\subsection{Program: \href{http://moinejf.free.fr}{abcm2ps}} + +\cmd{abcm2ps} is a free and multiplatform scorewriter, released under +the GNU GPL. + +This program is currently one of the best implementations of the +\href{http://abcnotation.com/}{ABC notation}, which describes itself +as: + +\begin{quote} + + \emph{the} text-based music notation system and the \emph{de + facto} standard for folk and traditional music. + +\end{quote} + +In fact, this notation is specifically designed to meet the needs of +traditional musicians; hundred of thousands (really!) of tunes in ABC +formats are available. ABC is a simple text notation, originally +designed for single-voice music but currently capable of producing +complex polyphonic scores. + +This is our usual music sample in ABC notation: + +\begin{source} +\begin{verbatim} +% music sample in ABC notation + +X: 1 +T: Music sample in ABC +M: C +L: 1/4 +K: C +% +C D/E/ F/G/A/B/|c B/A/ G/F/E/D/|C/G/E/G/ C/G/E/G/|CECz|] +\end{verbatim} +\end{source} + +We typeset the score with these commands: + +\begin{screen} +$ \textbf{abcm2ps -c -O= sample-abc.abc} +abcm2ps-8.14.1 (2018-11-15) +File sample-abc.abc +Output written on sample-abc.ps (1 page, 1 title, 20503 bytes) +$ \textbf{ps2pdf sample-abc.ps} +$ _ +\end{screen} +% $ + +% ----- + +\subsection{Program: \href{http://moinejf.free.fr}{abc2svg}} + +\cmd{abc2svg} is a free and multiplatform scorewriter, released under +the GNU GPL. It's basically \cmd{abcm2ps} rewritten in JavaScript. + +Although \cmd{abc2svg} can be integrated in a +\href{http://moinejf.free.fr/js/edit-1.xhtml}{web-based editor}, it's +a command-line program. It reads an ABC source file and turns it to +\file{xhtml}: + +\begin{screen} +$ \textbf{abc2svg file.abc > file.xhtml} +$ _ +\end{screen} + +The resulting \file{.xhtml} can then be loaded into any web browser +and printed to PDF. \href{https://www.google.com/chrome}{Google +Chrome} or \href{https://www.chromium.org/Home}{Chromium} are the +recommended browsers. + +We can run the whole procedure non-interactively, entirely in the +command line. This only works in GNU/Linux and macOS: + +\begin{screen} +$ \textbf{abc2svg tunes.abc > tunes.xhtml} +$ \textbf{chromium-browser --headless --print-to-pdf=tunes.pdf tunes.xhtml} +... many log messages ... +... Written to file tunes.pdf. +$ _ +\end{screen} + +% $ +However, in this case Chromium will add headers and footers to every +page. To remove them and obtain a clean PDF file, run the command: + +\begin{screen} +$ \textbf{pdfcrop --margins "0 -9 0 -9" --clip tunes.pdf} +PDFCROP 1.38, 2012/11/02 - Copyright (c) 2002-2012 by Heiko Oberdiek. +==> 79 pages written on `tunes-crop.pdf'. +$ _ +\end{screen} + +The same result can be obtained using \pkg{pdfpages} directly: + +\begin{source} +\begin{verbatim} +\documentclass{article} +\usepackage{pdfpages} + +\def\tunes{tunes.pdf} % PDF file to trim + +\begin{document} + +\includepdf[pages=-,pagecommand={},% +width=\paperwidth,trim={0 0.9cm 0 0.9cm},clip]{\tunes} + +\end{document} +\end{verbatim} +\end{source} + +% ----- + +\subsection{Program: \href{http://people.ds.cam.ac.uk/ph10/pmw.html}{PMW}} + +Philip's Music Writer (PMW) is a free and multiplatform scorewriter, +released under the GNU GPL. From the PMW home page: + +\begin{quote} + + \emph{Philip's Music Writer} (PMW) is a computer program for high + quality music typesetting. + +\end{quote} + +PMW uses a simple text notation for music input and produces output in +PostScript. + +This is our usual music sample in PMW format: + +\begin{source} +\begin{verbatim} +@ music sample in PMW + +Heading "|Music sample in PMW" +Key C +Time 4/4 + +[stave 1 treble 1] +c d- e-; f-g-a-b-; | c' b- a-; g-f-e-d-; | +c-g-e-g-; c-g-e-g-; |c e c r | +[endstave] +\end{verbatim} +\end{source} + +We typeset the score with these commands: + +\begin{screen} +$ \textbf{pmw -includefonts sample-pmw.pmw} +$ \textbf{ps2pdf sample-pmw.ps} +$ _ +\end{screen} +% $ + +% ----- + +\subsection{Program: \href{http://www.arkkra.com/}{MUP}} + +MUP is a free and multiplatform scorewriter, released under the GNU +GPL. From the MUP home page: + +\begin{quote} + + Mup takes a text file as input and produces very high quality + PostScript output for printed music. It can handle both regular + notation and tablature notation. It can also produce MIDI output. + +\end{quote} + +This is our usual music sample in MUP format: + +\begin{source} +\begin{verbatim} +// music sample in MUP notation + +header + title "Music sample in MUP" + +score + time=4/4 + +music + 1: 4c; 8d bm; e ebm; f bm; g; a; b ebm; + bar + 1: 4c+; 8b bm; a ebm; g bm; f; e; d ebm; + bar + 1: 8c bm; g; e; g ebm; c bm; g; e; g ebm; + bar + 1: 4c; e; c; r; + endbar +\end{verbatim} +\end{source} + +We typeset the score with these commands: + +\begin{screen} +$ \textbf{mup -F sample-mup.mup} +Mup - Music Publisher Version 6.6 +Copyright (c) 1995-2017 by Arkkra Enterprises. +Mup is free software. Use -l option to see license terms. +$ \textbf{ps2pdf sample-mup.ps} +$ _ +\end{screen} +% $ + +% ----- + +\subsection{Program: \href{http://musescore.org}{MuseScore}} +\label{sec:musescore} + +MuseScore is a free and multiplatform scorewriter, released under the +GNU GPL. Unlike the previous programs, it's a desktop application; +however, it can be conveniently used from the command line. + +MuseScore uses its own file formats (\file{.mscz}, \file{.mscx}) but +it can also import several other file formats; +\href{https://www.musicxml.com/}{MusicXML} is probably the most +important. + +We convert any supported file to PDF with this command: + +\begin{screen} +$ \textbf{musescore file.xml -o file.pdf} +initScoreFonts 0x30d33c0 +convert <file.xml> to <file.pdf> +setFirstInstrument: no instrument found for part 'P1' +$ _ +\end{screen} +% $ + +% ----- + +\subsection{Package \pkg{abc}} +\label{sec:pkgabc} + +This package enables the inclusion of music in ABC notation in +\LaTeX{} sources; it's similar to \cmd{lilypond-book} or +\pkg{lyluatex}, but targeting ABC. + +\pkgname{Abc} provides the \env{abc} environment and the +\ltx{abcinput} commands. The first embeds ABC music in the source, +while the second includes an external ABC file: + +\begin{source} +\begin{verbatim} +\documentclass{article} +\usepackage[generate,ps2eps]{abc} +\thispagestyle{empty} + +\begin{document} + +This is an Irish reel: + +\begin{abc}[name=julia,program={abcm2ps -O=}] +X:63 +T: Julia Delaney's +M: C| +L: 1/8 +R: reel +K: Ddor +|: dcAG ~F2EF|~E2 DE FD D2|dcAG FGAA|Addc d2 fe :| + f2fe fagf |ecgc acgc |f2fe fagf|edcG Add2 :| +\end{abc} + +This is an Irish polka, slighly smaller: + +\abcinput[program={abcm2ps -O=},width=0.9\abcwidth] +{breeches} + +End of document. + +\end{document} +\end{verbatim} +\end{source} + +The \cmd{generate} option (default) indicates that the ABC music +should be generated by the external ABC typesetter. If the ABC music +is not modified and it has already been generated, we could specify +the \cmd{nogenerate} option. This is what we want to do when only the +text is changed. + +We typeset the source with this command: + +\begin{screen} +$ \textbf{pdflatex --shell-escape sample-abc.tex} +... +Output written on sample-abc.pdf (1 page, 30937 bytes). +Transcript written on sample-abc.log. +$ _ +\end{screen} + +\score{sample-abc} + +% ----- + +\noteseparator + +% ----- + +\section{Guitar Tablatures} +\label{sec:tablatures} + +Let's go back to guitar stuff. Tablature, as already explained, is a +form of musical notation for stringed instruments; making tablatures +is basically the same process as making sheet music. + +% ----- + +\subsection{Program: \href{http://lilypond.org/}{LilyPond}} +\label{sec:lilytab} + +In addition to sheet music, LilyPond can also easily typeset guitar +tablatures. A minimal example (\file{lilytab.ly}): + +\begin{source} +\begin{verbatim} +\version "2.18.2" +\header { tagline = "" } % no footer +\paper { left-margin = 0\cm } + +music = { + \time 3/4 + c4 d e f g a b a b c'2 r4 +} + +\score { + << + \new Staff { \clef "G_8" \music } % sheet music + \new TabStaff { \music } % tablature + >> +} +\end{verbatim} +\end{source} + +We typeset the score with this command: + +\begin{screen} +$ \textbf{lilypond lilytab.ly} +... +Converting to `./lilytab.pdf'... +Success: compilation successfully completed +$ _ +\end{screen} +% $ + +\scoreshort{lilytab} + +\bigskip + +As you can see, the very same music line can be typeset as sheet music +and as guitar tablature. Fretboard positions are automatically +generated by LilyPond. + +% ----- + +\subsection{Program: \href{https://wim.vree.org/svgParse/abc2xml.html} +{abc2xml.py}} +\label{sec:abc2xml} + +This Python program converts an ABC file to a +\href{https://www.musicxml.com/}{MusicXML} file containing tablature +information; this file can then be typeset with any MusicXML-enabled +application, like MuseScore. + +A minimal tablature example (\file{abctab.abc}): + +\begin{source} +\begin{verbatim} +X: 1 +M: 3/4 +L: 1/4 +K: C +% +V:1 +CDE | FGA | BBB | c2z |] +V:2 clef=tab octave=-1 +CDE | FGA | BBB | c2z |] +\end{verbatim} +\end{source} + +We typeset the score with these commands (error messages can be safely +ignored): + +\begin{screen} +$ \textbf{abc2xml.py -f abctab.abc > abctab.xml} +-- decoded from utf-8 +-- skipped header: (field X,1) +-- done in 0.02 secs +$ \textbf{musescore abctab.xml -o abctab.pdf} +Jack appears to be installed on this system, so we'll use it. +initScoreFonts 0x25ba100 +libpng warning: iCCP: known incorrect sRGB profile +convert <abctab.xml> to <abctab.pdf> +Error at line 18 col 16: no instrument found for part 'P1' +Error at line 138 col 16: no instrument found for part 'P2' +$ _ +\end{screen} +% $ + +\score{abctab} + +\bigskip + +As you can see, the very same music line can be typeset as sheet music +and as guitar tablature. Fretboard positions are automatically +generated by \cmd{abc2xml.py}. + +We can also use \cmd{lilypond} to typeset the ABC tablature. The +ancillary program \cmd{musicxml2ly} converts MusicXML files to +LilyPond format: + +\begin{screen} +$ \textbf{abc2xml.py -f abctab.abc > abctab.xml} +-- decoded from utf-8 +-- skipped header: (field X,1) +-- done in 0.02 secs +$ \textbf{musicxml2ly abctab.xml} +$ musicxml2ly: Reading MusicXML from abctab.xml ... +musicxml2ly: Converting to LilyPond expressions... +musicxml2ly: Converting to LilyPond expressions... +musicxml2ly: Output to `abctab.ly' +$ \textbf{lilypond abctab.ly} +GNU LilyPond 2.18.2 +Processing `abctab.ly' +... +Converting to `./abctab.pdf'... +Success: compilation successfully completed +$ _ +\end{screen} +% $ + +Regrettably, \cmd{musicxml2ly} is not as robust as MuseScore's +MusicXML import filter, and it may fail on complex music. + +% ----- + +\subsection{Package \pkg{guitartabs}} + +This package may be missing in less recent releases of TeX Live, so +you might have to install it manually. It provides a \cmd{guitartabs} +document class and a very simple syntax to denote strings, fret +positions, and note length: + +\begin{source} +\begin{verbatim} +\documentclass{guitartabs} +\thispagestyle{empty} + +\begin{document} + +\Large + +\begin{tabline}{4}{4}{4}{E,A,D,G,B,e} + % bar 1 + % note 1 of 3, string 5, fret 4, note length 1/4 + \notel{1}{3}{5}{3}{4} + % note 2 of 3, string 4, fret 0, note length 1/4 + \notel{2}{3}{4}{0}{4} + \notel{3}{3}{4}{2}{4} + % bar 2 + \nextbar + \notel{1}{3}{4}{3}{4} + \notel{2}{3}{3}{0}{4} + \notel{3}{3}{3}{2}{4} + % bar 3 + \nextbar + \notel{1}{3}{2}{0}{4} + \notel{2}{3}{3}{2}{4} + \notel{3}{3}{2}{0}{4} + % bar 4 + \nextbar + \notel{1}{3}{5}{3}{2} + % rests + \restquarter{2}{3} + \restquarter{3}{3} +\end{tabline} + +\end{document} +\end{verbatim} +\end{source} + +\score{guitartabs} + +If you don't need the note length indications at the bottom of the +tablature, use \ltx{note} instead of \ltx{notel}. + +% ----- + +% \subsection{Package \href{https://github.com/huljar/musixtab}{musixtab}} + +% TO BE WRITTEN + +% ----- + +\subsection{Using Guitar Pro Tablatures} + +A \emph{de facto} standard for guitar tablatures is the +\href{https://www.guitar-pro.com}{Guitar Pro} format, or more +precisely a set file formats: \file{.gpX} (where X is 3, 4, 5, 6), +\file{.gpx}, \file{.gtp}. Many sites offer free tablatures in one of +these formats. + +To print them, we can use +\href{http://www.tuxguitar.com.ar/}{TuxGuitar} or MuseScore. TuxGuitar +is a free and multiplatform tablature editor; it's a desktop +application that can export tablatures in PDF format. Regrettably, it +cannot work as a command-line program. + +To import GuitarPro tablatures into MuseScore and export them as PDF, +we can use the \cmd{-P} command line switch. It exports all parts to +the PDF file; then it's up to the user to find out the pages that +contain the tablature. + +% ----- + +\noteseparator + +% ----- + +\section{Putting It All Together} + +We have solved the first problem; now we know how to make music files +in several different ways. Now it's time to solve the second problem: +how to combine music files and \LaTeX. + +% ----- + +\subsection{Package \pkg{abc}, Revisited} + +We met this package in Section~\ref{sec:pkgabc}, where it was used to +include ABC music in a \LaTeX{} source. This package, however, is not +limited to ABC. User-defined environments can provide support for +virtually any external scorewriter; LilyPond support, however, is +slightly bugged. + +The following source defines the \env{mtx} and \env{pmw} environments. +For each, the definition specifies the external program to run, its +command line switches, and the file extension: + +\begin{source} +\begin{verbatim} +\documentclass{article} +\thispagestyle{empty} +\usepackage[generate,ps2eps]{abc} + +% --- M-Tx support +\newenvironment{mtx}[1][] +{\renewcommand{\normalabcoutputfile}{out-mtx}% +\abc[program=musixtex,options={-g},extension=mtx,#1]} +{\endabc} +\newcommand{\mtxinput}[2][]{% +\abcinput[program=musixtex,options={-g},extension=mtx,#1]{#2}} + +% --- PMW support +\newenvironment{pmw}[1][] +{\renewcommand{\normalabcoutputfile}{out-pmw}% +\abc[program=pmw,options={-includefont},extension=pmw,#1]} +{\endabc} +\newcommand{\pmwinput}[2][]{% +\abcinput[program=pmw,options={-includefont},extension=pmw,#1]{#2}} + +\begin{document} + +This document includes music excerpts written in different formats. It +uses \texttt{abc.sty} and defines new environments. + +This is a short piece, typeset by M-Tx: + +\mtxinput{sample-mtx} + +The same piece, typeset by PMW: + +\pmwinput{sample-pmw} + +End of document. + +\end{document} +\end{verbatim} +\end{source} + +\score{sample-all} + +\bigskip + +A complete template that implements all environments is presented in +Section~\ref{sec:abcall}. + +% ----- + + +% ----- + +\subsection{Using \cmd{make}} + +Another way to make a \LaTeX{} document that includes music in +different formats is by using a developer's tool called \cmd{make}. +It's a program that takes care of what needs what, what needs to be +converted first, what should be done if you modify something, and so +on. \cmd{make} is normally used to compile programs. + +Let's make a practical example. We have a \LaTeX{} document, +\file{main.tex}, which includes three PDF files, \file{music1.pdf}, +\file{music2.pdf}, and \file{music3.pdf}: + +\begin{source} +\begin{verbatim} +\documentclass{article} +\usepackage{graphicx} +\thispagestyle{empty} + +\begin{document} + +This document includes three music excerpts: + +\includegraphics{music1} + +\includegraphics{music2} + +\includegraphics{music3} + +End of document. + +\end{document} +\end{verbatim} +\end{source} + +Let's suppose that the three PDF files are obtained from an +\pkgname{M-Tx} file, a LilyPond file, and an ABC file. We should +convert the PDF files manually, then typeset \file{main.tex}. It's not +a big deal, but what if you have dozens of music files, each of which +must be converted with different commands? This task would soon grow +tedious and difficult to manage. + +Here \cmd{make} comes to the rescue. It uses a text file, called +\file{Makefile}, which contains rules for building the document and +the PDF files that it includes. This is a simple \file{Makefile} that +can be used to compose (make!) \file{main.pdf}: + +\begin{source} +\begin{verbatim} +# Makefile for main.tex + +FIGURES = music1.pdf music2.pdf music3.pdf + +# The final document depends on main.tex and the figures +main.pdf: main.tex $(FIGURES) + pdflatex main.tex + +# music1.pdf depends on music1.mtx +# conversion commands follow +music1.pdf: music1.mtx + musixtex music1.mtx ; pdfcrop musix1.pdf ; \ + /bin/mv musix1-crop.pdf music1.pdf + +# music2.pdf depends on music2.ly +music2.pdf: music2.ly + lilypond music2.ly; pdfcrop musix2.pdf ; \ + /bin/mv musix2-crop.pdf music2.pdf + +# music3.pdf depends on music3.abc +music3.pdf: music3.abc + abcm2ps -c -O= music3.abc; ps2pdf music3.ps; \ + pdfcrop musix3.pdf ; \ + /bin/mv musix3-crop.pdf music3.pdf + +# end of Makefile +\end{verbatim} +\end{source} + +% $ + +Let's see what it does. First of all, as you might have guessed the +\cmd{\#} character starts a comment; the rest of the line is ignored. + +The line: + +\begin{verbatim} +FIGURES = music1.pdf music2.pdf music3.pdf +\end{verbatim} + +creates a \emph{variable}, that is a ``name'' (\cmd{FIGURES}) that +``contains'' the three file names \cmd{music1.pdf music2.pdf +music3.pdf}. This variable will be referred to later on. + +The lines: + +\begin{verbatim} +main.pdf: main.tex $(FIGURES) + pdflatex main.tex +\end{verbatim} +% $ + +declare that \cmd{main.pdf} is a \emph{target} that depends on +\file{main.tex} and on the three files denoted by the \cmd{FIGURES} +variable. The second line specifies the command that must be run to +make \file{main.pdf}. This line starts with a TAB character, not with +spaces: this is important! + +Then we have three sections, one for each music file. Each section +tells \cmd{make} what to do to compose the PDF figure. For instance, +the section: + +\begin{verbatim} +music1.pdf: music1.mtx + musixtex music1.mtx ; pdfcrop musix1.pdf ; \ + /bin/mv musix1-crop.pdf music1.pdf +\end{verbatim} + +states that \file{music1.pdf} is a target that depends on +\file{music1.mtx}; the following lines specify the commands to create +\file{music1.pdf}. Commands are separated by the \cmd{;} character, +while \cmd{\textbackslash} indicates that the command continues to the +next line. + +To make \file{main.pdf}, we simply run the command: + +\begin{screen} +$ \textbf{make} +... +$ _ +\end{screen} + +in the same directory where we saved \file{Makefile}. \cmd{make} will +make the three figures first, then \file{main.pdf} that depends on +them. + +If we modify one of the files, \cmd{make} will take care of +dependencies and rebuild the final target. For example, if we modify +\file{music2.ly}, \cmd{make} will rebuild \file{music2.pdf} first, then +\file{main.pdf} that depends on \file{music2.pdf}. + +In my opinion, this approach is the most flexible. This guide was +compiled using \cmd{make} and a pretty long \file{Makefile}. + +% ----- + +\noteseparator + +% ----- + +\section{The End} + +That's it, dear fellow musicians: I really hope that this guide will +be useful to you. Please help me improve this document: for any +suggestions, comments, or contributions, please feel free to contact +me by \href{mailto:guido.gonzato@gmail.com}{email}. I'd like to +receive feedback, especially if you use this document in education. + +This document is copyleft \copyleft{} Guido Gonzato, PhD, and released +under the \href{https://www.gnu.org/licenses/fdl.html}{GNU Free +Documentation Licence}. + +% ----- + +\noteseparator + +% ----- + +\newpage + +\appendix + +\section{List of Packages and Programs} + +This manual uses many \LaTeX{} packages and includes PDF output +produced by several programs, all of which are free and open source. +Commercial programs were intentionally left out. + +The page \url{https://www.ctan.org/topic/music} is an important +starting po\-int for those interested in combining \LaTeX{} and music. +It's a list of \LaTeX{} packages for typesetting music and related +stuff. The following is the complete list of packages and programs I +used to make this manual, in order of appearance. + +\begin{itemize} + + \item CTAN Music page. ``This topic contains packages for + typesetting music and related stuff.''\\ + \url{https://www.ctan.org/topic/music}. + + \item Package: musicography.\\ + \url{https://ctan.org/pkg/musicography} + + \item Package: leadsheets.\\ + \url{https://ctan.org/pkg/leadsheets} + + \item Package: lilyglyphs.\\ + \url{https://ctan.org/pkg/lilyglyphs} + + \item Font: Bravura.\\ + \url{https://www.smufl.org/fonts} + + \item Package: guitar.\\ + \url{https://ctan.org/pkg/guitar} + + \item Package: gtrcrd.\\ + \url{https://ctan.org/pkg/gtrcrd} + + \item Package: songs.\\ + \url{https://ctan.org/pkg/songs} + + \item Package: musixguit.\\ + \url{https://ctan.org/pkg/musixguit} + + \item Package: songbook.\\ + \url{https://ctan.org/pkg/songbook} + + \item Program: Chordii.\\ + \url{https://www.vromans.org/projects/Chordii} + + \item Package: gchords.\\ + \url{https://ctan.org/pkg/gchords} + + \item Package: guitarchordschemes.\\ + \url{https://ctan.org/pkg/guitarchordschemes} + + \item Package: guitartabs.\\ + \url{https://ctan.org/pkg/guitartabs} + + \item Page: MusiXTeX and Related Software. \\ + \url{https://icking-music-archive.org/software/htdocs/htdocs.html} + + \item Package: MusiXTeX.\\ + \url{https://ctan.org/pkg/musixtex} + + \item Package: M-Tx.\\ + \url{https://ctan.org/pkg/m-tx} + + \item Package: Gregoriotex.\\ + \url{https://ctan.org/pkg/gregoriotex}\\ + \url{http://gregorio-project.github.io/gregoriotex}\\ + \url{http://gregorio-project.github.io} + + \item Program: LilyPond.\\ + \url{http://lilypond.org} + + \item Package: Lyluatex.\\ + \url{https://ctan.org/pkg/lyluatex} + + \item Programs: \cmd{abcm2ps}, \cmd{and2svg}.\\ + \url{http://moinejf.free.fr} + + \item Program: PMW, Philip's Music Writer.\\ + \url{http://people.ds.cam.ac.uk/ph10/pmw.html} + + \item Program: MUP.\\ + \url{http://www.arkkra.com} + + \item Program: MuseScore.\\ + \url{http://musescore.org} + + \item Package: Abc.\\ + \url{https://ctan.org/pkg/abc} + + \item Program: abc2xml.ly.\\ + \url{https://wim.vree.org/svgParse/abc2xml.html} + +\end{itemize} + +% ----- + +\newpage + +\section{Examples} + +\subsection{A Complete \pkg{abc} Example} +\label{sec:abcall} + +This source defines environments for M-Tx, PMW, LilyPond, and MUP; it +also redefines the \cmd{abc} environment as \cmd{ABC}. This is +necessary for technical reasons. Lilypond sources must begin with a +double line \ltx{version "2.18.2"}; this is required to avoid a bug. + +\begin{source} +\begin{verbatim} +% typeset with: +% pdflatex -shell-escape sample-abc-all.tex + +\documentclass{article} +\thispagestyle{empty} +\usepackage[generate,ps2eps]{abc} + +% --- M-Tx support +\newenvironment{mtx}[1][] +{\renewcommand{\normalabcoutputfile}{out-mtx}% +\abc[program=musixtex,options={-g},extension=mtx,#1]} +{\endabc} +\newcommand{\mtxinput}[2][]{% +\abcinput[program=musixtex,options={-g},extension=mtx,#1]{#2}} + +% --- PMW support +\newenvironment{pmw}[1][] +{\renewcommand{\normalabcoutputfile}{out-pmw}% +\abc[program=pmw,options={-includefont},extension=pmw,#1]} +{\endabc} +\newcommand{\pmwinput}[2][]{% +\abcinput[program=pmw,options={-includefont},extension=pmw,#1]{#2}} + +% --- LilyPond support +% !!! BUG: the LilyPond source must begin with a \null command +\newenvironment{lily}[1][] +{\renewcommand{\normalabcoutputfile}{out-lily}% +\abc[program=lilypond,options={-d backend=eps},extension=ly,#1]} +{\endabc} +\newcommand{\lilyinput}[2][]{% +\abcinput[program=lilypond,options={--ps},extension=ly,#1]{#2}} + +% --- MUP support +\newenvironment{mup}[1][] +{\renewcommand{\normalabcoutputfile}{out-mup}% +\abc[program=mup,options={-F},extension=mup,#1]} +{\endabc} +\newcommand{\mupinput}[2][]{% +\abcinput[program=mup,options={-F},extension=mup,#1]{#2}} + +% --- ABC must be redefined +\newenvironment{ABC}[1][] +{\renewcommand{\normalabcoutputfile}{out-ABC}% +\abc[program=abcm2ps,options={-O=},extension=abc,#1]} +{\endabc} +\newcommand{\ABCinput}[2][]{% +\abcinput[program=abcm2ps,options={-O=},extension=abc,#1]{#2}} + +\begin{document} + +This document includes music excerpts written in several formats. It +uses \texttt{abc.sty} and defines new environments. + +This is a short piece, typeset by M-Tx: + +\begin{mtx} +Title: Music sample in M-Tx +Style: Solo +Meter: C +Width: 160mm + +c4 d8 e f g a b | c4 b8 a g f e d | c8 g+ e g c- g+ e g | c4- e c r | +\end{mtx} + +The same piece, typeset by LilyPond: + +\begin{lily} +% twice - it's required to avoid a bug +\version "2.18.2" +\version "2.18.2" + +\header { + title = "Music sample in LilyPond" + tagline = "" % no footer +} + +\relative c' { + \time 4/4 + \clef treble + c4 d8 e f8 g a b | c4 b8 a g8 f e d | + c8 g' e g c,8 g' e g | c,4 e c r \bar "|." +} +\end{lily} + +The same piece, typeset by PMW: + +\begin{pmw} +Heading "|Music sample in PMW" +Key C +Time 4/4 + +[stave 1 treble 1] +c d- e-; f-g-a-b-; | c' b- a-; g-f-e-d-; | +c-g-e-g-; c-g-e-g-; |c e c r | +[endstave] +\end{pmw} + +The same piece, typeset by MUP: + +\begin{mup} +// music sample in MUP notation + +header + title "Music sample in MUP" + +score + time=4/4 + +music + 1: 4c; 8d bm; e ebm; f bm; g; a; b ebm; + bar + 1: 4c+; 8b bm; a ebm; g bm; f; e; d ebm; + bar + 1: 8c bm; g; e; g ebm; c bm; g; e; g ebm; + bar + 1: 4c; e; c; r; + endbar +\end{mup} + +The same piece, typeset by abcm2ps: + +\begin{ABC} +X: 1 +T: Music sample in ABC +M: 4/4 +L: 1/4 +K: C +% +C D/E/ F/G/A/B/|c B/A/ G/F/E/D/|C/G/E/G/ C/G/E/G/|CECz|] +\end{ABC} + +\end{document} + +\end{verbatim} +\end{source} + +\score{sample-abc-all} + +% ----- + +\subsection{A Complete Songbook Example} +\label{sec:songbook} + +The following source is a minimal template for songbooks. It uses the +\pkg{gchords} and \pkg{guitar} packages (Sections~\ref{sec:gchords} +and \ref{sec:pkgguitar}). The resulting PDF has its own page numbers +(don't get confused!) and is included in this document with +\ltx{includepdf}. + +\begin{source} +\begin{verbatim} +\documentclass[11pt]{article} +\usepackage{graphicx} +\usepackage{gchords} +\usepackage{guitar} + +\begin{document} + +\title{A Minimal Songbook} +\author{Guido Gonzato} + +\maketitle + +\tableofcontents + +\bigskip +\hrule + +% ----- + +\section{For He's a Jolly Good Fellow} + +According to the 1998 Guinness World Records, this is the second most +recognized song in the English language. + +\def\numfrets{4} +\chords{ +\chord{t}{n,p3,p2,n,p1,n}{C} +\chord{t}{p3,p2,n,n,n,p3}{G} +\chord{t1}{n,p2,p2,p1,n,n}{F} +} + +\medskip + +\includegraphics[width=\textwidth]{fellow} + +% ----- + +\section{Happy Birthday To You} + +According to the 1998 Guinness World Records, it is the most +recognized song in the English language, followed by ``For He's a +Jolly Good Fellow''. + +\def\numfrets{4} +\chords{ +\chord{t1}{n,p2,p2,p1,n,n}{F} +\chord{t}{n,p3,p2,n,p1,n}{C} +\chord{t}{n,p3,p2,p3,p1,n}{C7} +\chord{t1}{n,n,p2,p2,p2,n}{B$\flat$} +} + +\medskip + +\includegraphics[width=\textwidth]{happyb} + +% ----- + +\section{Twinkle, Twinkle Little Star} + +This is a popular English lullaby. + +\def\numfrets{4} +\chords{ +\chord{t}{n,p3,p2,n,p1,n}{C} +\chord{t1}{n,p2,p2,p1,n,n}{F} +\chord{t}{x,n,n,p2,p3,p1}{Dm} +\chord{t}{p3,p2,n,n,n,p3}{G} +} + +\includegraphics[width=\textwidth]{twinkle} + +\medskip + +\begin{guitar} + +[C]Twinkle, twinkle, [F]little [C]star, +[Dm]How I [C]wonder [G]what you [C]are! +[C]Up a[Dm]bove the [C]world so [G]high, +[C]Like a [Dm]diamond [C]in the [G]sky. +Twinkle{\ldots} + +[C]When this blazing [F]sun is [C]gone, +[Dm]When he [C]nothing [G]shines u[C]pon, +[C]Then you [Dm]show your [C]little [G]light, +[C]Twinkle, [Dm]twinkle, [C]through the night. +Twinkle{\ldots} + +[C]Then the [F]traveller in the [C]dark +[Dm]Thanks you [C]for your [G]tiny [C]spark; +[C]He could [Dm]not see [C]where to [G]go, +[C]If you [Dm]did not [C]twinkle [G]so. +Twinkle{\ldots} + +[C]In the dark blue [F]sky you [C]keep, +And [Dm]often [C]through my [G]curtains [C]peep, +[C]For you [Dm]never [C]shut your [G]eye +[C]Till the [Dm]sun is [C]in the [G]sky. +Twinkle{\ldots} + +[C]As your bright and [F]tiny [C]spark +[Dm]Lights the [C]traveller [G]in the [C]dark, +[C]Though I [Dm]know not [C]what you [G]are, +[C]Twinkle, [Dm]twinkle, [C]little [G]star. +Twinkle{\ldots} + +\end{guitar} + +\end{document} +\end{verbatim} +\end{source} + +\includepdf[pages=-,pagecommand={}]{sample-songbook.pdf} + +% ----- + +\subsection{A sample \file{Makefile}} + +This is the \file{Makefile} that was used to typeset the previous +example. The \cmd{clean} target is used to clean up all temporary +files. + +\begin{source} +\begin{verbatim} +# Makefile for songbook.tex + +FIGURES = fellow.pdf happyb.pdf twinkle.pdf + +songbook: songbook.tex $(FIGURES) + pdflatex songbook.tex + +fellow.pdf: fellow.abc + abcm2ps -c -O= fellow.abc; \ + ps2pdf fellow.ps; \ + pdfcrop fellow.pdf; \ + /bin/mv -f fellow-crop.pdf fellow.pdf + +happyb.pdf: happyb.abc + abcm2ps -O= happyb.abc; \ + ps2pdf happyb.ps; \ + pdfcrop happyb.pdf; \ + /bin/mv -f happyb-crop.pdf happyb.pdf + +twinkle.pdf: twinkle.abc + abcm2ps -O= twinkle.abc; \ + ps2pdf twinkle.ps; \ + pdfcrop twinkle.pdf; \ + /bin/mv -f twinkle-crop.pdf twinkle.pdf + +clean: + /bin/rm -f .*~ *~ *aux *bak *lo? *to? *out *tmp *bbl *ps +\end{verbatim} +\end{source} + +\end{document} + +% --- end of file latex4musicians.tex diff --git a/Master/texmf-dist/doc/latex/latex4musicians/leadsheets.pdf b/Master/texmf-dist/doc/latex/latex4musicians/leadsheets.pdf Binary files differnew file mode 100644 index 00000000000..170f3680f31 --- /dev/null +++ b/Master/texmf-dist/doc/latex/latex4musicians/leadsheets.pdf diff --git a/Master/texmf-dist/doc/latex/latex4musicians/lilyglyphs.pdf b/Master/texmf-dist/doc/latex/latex4musicians/lilyglyphs.pdf Binary files differnew file mode 100644 index 00000000000..0d226efeb3d --- /dev/null +++ b/Master/texmf-dist/doc/latex/latex4musicians/lilyglyphs.pdf diff --git a/Master/texmf-dist/doc/latex/latex4musicians/lilytab.pdf b/Master/texmf-dist/doc/latex/latex4musicians/lilytab.pdf Binary files differnew file mode 100644 index 00000000000..a649331896d --- /dev/null +++ b/Master/texmf-dist/doc/latex/latex4musicians/lilytab.pdf diff --git a/Master/texmf-dist/doc/latex/latex4musicians/musicography.pdf b/Master/texmf-dist/doc/latex/latex4musicians/musicography.pdf Binary files differnew file mode 100644 index 00000000000..135f6f08349 --- /dev/null +++ b/Master/texmf-dist/doc/latex/latex4musicians/musicography.pdf diff --git a/Master/texmf-dist/doc/latex/latex4musicians/musixguit.pdf b/Master/texmf-dist/doc/latex/latex4musicians/musixguit.pdf Binary files differnew file mode 100644 index 00000000000..d21c8da75ec --- /dev/null +++ b/Master/texmf-dist/doc/latex/latex4musicians/musixguit.pdf diff --git a/Master/texmf-dist/doc/latex/latex4musicians/params.tex b/Master/texmf-dist/doc/latex/latex4musicians/params.tex new file mode 100644 index 00000000000..5e1f827e404 --- /dev/null +++ b/Master/texmf-dist/doc/latex/latex4musicians/params.tex @@ -0,0 +1,171 @@ +% params.tex -*- LaTeX -*- +% +% By Guido Gonzato, PhD <guido.gonzato (at) gmail.com> +% +% Last updated: January 4, 2019 + +% ----- DEBUG +% \overfullrule=5pt +% \widowpenalty=10000 +% \clubpenalty=10000 + +% default typewriter font +\renewcommand{\ttdefault}{txtt} + +\definecolor{shadecolor}{rgb}{0.85,0.85,1} +\definecolor{pdfbg}{rgb}{0.95,0.95,0.95} +\definecolor{darkblue}{rgb}{0,0,0.6} +\definecolor{darkred}{rgb}{0.6,0,0} + +% ----- DEFINITIONS + +\newcommand{\version}{1.0.0} % VERSION + +\newcommand{\copyleft}{\reflectbox{\textcopyright}} +\newcommand{\bl}{\textbackslash} +\newcommand{\qs}{\textquotesingle} + +% ----- NEW COMMANDS AND ENVIRONMENTS + +\newcommand{\qnote} +{\raisebox{\depth}{\scalebox{-1}[-1]{\quarternote}}} + +\newcommand{\reg} +{\textsuperscript{\textregistered}} + +\newcommand{\entry}[2] +{{\small \textsf{#1/#2}}} + +\newcommand{\pkg}[1] +{\href{https://ctan.org/pkg/#1}{\texttt{#1}}} + +\newcommand{\ltx}[1] +{\texttt{\bl{}#1}} + +\newcommand{\app}[1] +{\texttt{#1}} + +\newcommand{\pkgname}[1] +{\textsc{#1}} + +\newcommand{\key}[1] +{\textbf{#1}} + +\newcommand{\menu}[1] +{\textsf{#1}} + +\newcommand{\file}[1] +{\texttt{#1}} + +\newcommand{\env}[1] +{\texttt{#1}} + +\newcommand{\field}[1] +{\texttt{#1}} + +\newcommand{\cmd}[1] +{\texttt{#1}} + +\newcommand{\icmd}[1] +{\textit{\texttt{#1}\/}} + +\newcommand{\metacmd}[1] +{\texttt{\%\%#1}} + +\newcommand{\parm}[1] +{\textit{$\langle$#1$\rangle$}} + +\newcommand{\optparm}[1] +{\textit{[#1]}} + +\newcommand{\car}[1] +% {\colorbox{charcolor}{\rule{0pt}{1ex}\texttt{#1}}} +{\texttt{#1}} + +\newcommand{\notes}[1] +{\texttt{#1}} + +\newcommand{\graph}[1] +{\textsc{#1}} + +\newcommand{\noteseparator} +{ +\medskip +\begin{center} + \twonotes~\twonotes~\twonotes~\twonotes~\twonotes~\twonotes~\twonotes +\end{center} +} + +\newenvironment{margins}[2] +{ % begin def +\begin{list}{} +{ +\setlength{\leftmargin}{#1} +\setlength{\rightmargin}{#2} +} \item +} % end def +{\end{list}} + +\newenvironment{source} +{ % beg def + \medskip + \small + \begin{margins}{-0.3cm}{-0.3cm} + \begin{spacing}{0.9} + \begin{tcolorbox}[breakable,boxrule=0.2pt,% + left=0pt,right=0pt,colback=blue!7!white,arc=2pt] + \begin{alltt} +} +{ % end def + \end{alltt} + \end{tcolorbox} + \end{spacing} + \end{margins} +} + +\newenvironment{screen} +{ % beg def + \medskip + \small + \begin{margins}{-0.3cm}{-0.3cm} + \begin{spacing}{0.9} + \tcbset{beforeafter skip=0pt} + \begin{tcolorbox}[breakable,boxrule=0.2pt,% + left=0pt,right=0pt,colback=white,arc=0pt] + \begin{alltt} +} +{ % end def + \end{alltt} + \end{tcolorbox} + \end{spacing} + \end{margins} +} + +\newlength{\tmplength} + +\newcommand{\score}[1] +{ + \setlength{\tmplength}{\parindent} + \setlength{\parindent}{0pt} + \begin{margins}{-0.3cm}{-0.3cm} + \colorbox{pdfbg}{\includegraphics[width=\linewidth]{#1.pdf}} + \end{margins} + \setlength{\parindent}{\tmplength} +} + +\newcommand{\scoreshort}[1] +{ + \setlength{\tmplength}{\parindent} + \setlength{\parindent}{0pt} + \begin{center} + \colorbox{pdfbg}{\includegraphics{#1.pdf}} + \end{center} + \setlength{\parindent}{\tmplength} +} + +\newcommand{\scorepage}[1] +{ + \includegraphics[width=\linewidth]{#1.pdf} +} + +% ----- End of file params.tex diff --git a/Master/texmf-dist/doc/latex/latex4musicians/pdfl.sh b/Master/texmf-dist/doc/latex/latex4musicians/pdfl.sh new file mode 100644 index 00000000000..8c87efe2144 --- /dev/null +++ b/Master/texmf-dist/doc/latex/latex4musicians/pdfl.sh @@ -0,0 +1,12 @@ +#!/bin/sh + +if [ $# = 0 ]; then + echo "Usage: $0 <file.tex>" + exit 1 +fi + +NAME=$(basename $1 .tex) +PDF=$NAME.pdf +pdflatex Figures/$NAME.tex +pdfcrop $PDF +/bin/mv -f $NAME-crop.pdf $PDF diff --git a/Master/texmf-dist/doc/latex/latex4musicians/pdfx.sh b/Master/texmf-dist/doc/latex/latex4musicians/pdfx.sh new file mode 100644 index 00000000000..f26039b1e8c --- /dev/null +++ b/Master/texmf-dist/doc/latex/latex4musicians/pdfx.sh @@ -0,0 +1,12 @@ +#!/bin/sh + +if [ $# = 0 ]; then + echo "Usage: $0 <file.tex>" + exit 1 +fi + +NAME=$(basename $1 .tex) +PDF=$NAME.pdf +xelatex Figures/$NAME.tex +pdfcrop $PDF +/bin/mv -f $NAME-crop.pdf $PDF diff --git a/Master/texmf-dist/doc/latex/latex4musicians/sample-abc-all.pdf b/Master/texmf-dist/doc/latex/latex4musicians/sample-abc-all.pdf Binary files differnew file mode 100644 index 00000000000..27923739741 --- /dev/null +++ b/Master/texmf-dist/doc/latex/latex4musicians/sample-abc-all.pdf diff --git a/Master/texmf-dist/doc/latex/latex4musicians/sample-abc.pdf b/Master/texmf-dist/doc/latex/latex4musicians/sample-abc.pdf Binary files differnew file mode 100644 index 00000000000..a7bee64a9d4 --- /dev/null +++ b/Master/texmf-dist/doc/latex/latex4musicians/sample-abc.pdf diff --git a/Master/texmf-dist/doc/latex/latex4musicians/sample-all.pdf b/Master/texmf-dist/doc/latex/latex4musicians/sample-all.pdf Binary files differnew file mode 100644 index 00000000000..50a86c82828 --- /dev/null +++ b/Master/texmf-dist/doc/latex/latex4musicians/sample-all.pdf diff --git a/Master/texmf-dist/doc/latex/latex4musicians/sample-latexmtx.pdf b/Master/texmf-dist/doc/latex/latex4musicians/sample-latexmtx.pdf Binary files differnew file mode 100644 index 00000000000..0acf8615f93 --- /dev/null +++ b/Master/texmf-dist/doc/latex/latex4musicians/sample-latexmtx.pdf diff --git a/Master/texmf-dist/doc/latex/latex4musicians/sample-lilybook.pdf b/Master/texmf-dist/doc/latex/latex4musicians/sample-lilybook.pdf Binary files differnew file mode 100644 index 00000000000..2c73a42e500 --- /dev/null +++ b/Master/texmf-dist/doc/latex/latex4musicians/sample-lilybook.pdf diff --git a/Master/texmf-dist/doc/latex/latex4musicians/sample-lyluatex.pdf b/Master/texmf-dist/doc/latex/latex4musicians/sample-lyluatex.pdf Binary files differnew file mode 100644 index 00000000000..c4eec1afc86 --- /dev/null +++ b/Master/texmf-dist/doc/latex/latex4musicians/sample-lyluatex.pdf diff --git a/Master/texmf-dist/doc/latex/latex4musicians/sample-mtx.pdf b/Master/texmf-dist/doc/latex/latex4musicians/sample-mtx.pdf Binary files differnew file mode 100644 index 00000000000..121a8b02a4a --- /dev/null +++ b/Master/texmf-dist/doc/latex/latex4musicians/sample-mtx.pdf diff --git a/Master/texmf-dist/doc/latex/latex4musicians/sample-musixtex.pdf b/Master/texmf-dist/doc/latex/latex4musicians/sample-musixtex.pdf Binary files differnew file mode 100644 index 00000000000..43a94a7eb5c --- /dev/null +++ b/Master/texmf-dist/doc/latex/latex4musicians/sample-musixtex.pdf diff --git a/Master/texmf-dist/doc/latex/latex4musicians/sample-pmw.pdf b/Master/texmf-dist/doc/latex/latex4musicians/sample-pmw.pdf Binary files differnew file mode 100644 index 00000000000..cbc815f7c7f --- /dev/null +++ b/Master/texmf-dist/doc/latex/latex4musicians/sample-pmw.pdf diff --git a/Master/texmf-dist/doc/latex/latex4musicians/sample-songbook.pdf b/Master/texmf-dist/doc/latex/latex4musicians/sample-songbook.pdf Binary files differnew file mode 100644 index 00000000000..d76a82deeac --- /dev/null +++ b/Master/texmf-dist/doc/latex/latex4musicians/sample-songbook.pdf diff --git a/Master/texmf-dist/doc/latex/latex4musicians/shave.pdf b/Master/texmf-dist/doc/latex/latex4musicians/shave.pdf Binary files differnew file mode 100644 index 00000000000..0404039d6ca --- /dev/null +++ b/Master/texmf-dist/doc/latex/latex4musicians/shave.pdf diff --git a/Master/texmf-dist/doc/latex/latex4musicians/sheet.pdf b/Master/texmf-dist/doc/latex/latex4musicians/sheet.pdf Binary files differnew file mode 100644 index 00000000000..7d42fdd3373 --- /dev/null +++ b/Master/texmf-dist/doc/latex/latex4musicians/sheet.pdf diff --git a/Master/texmf-dist/doc/latex/latex4musicians/songbook.pdf b/Master/texmf-dist/doc/latex/latex4musicians/songbook.pdf Binary files differnew file mode 100644 index 00000000000..bb29f25ba73 --- /dev/null +++ b/Master/texmf-dist/doc/latex/latex4musicians/songbook.pdf diff --git a/Master/texmf-dist/doc/latex/latex4musicians/songs.pdf b/Master/texmf-dist/doc/latex/latex4musicians/songs.pdf Binary files differnew file mode 100644 index 00000000000..17e4d01c3c9 --- /dev/null +++ b/Master/texmf-dist/doc/latex/latex4musicians/songs.pdf diff --git a/Master/texmf-dist/doc/latex/latex4musicians/songs_g.pdf b/Master/texmf-dist/doc/latex/latex4musicians/songs_g.pdf Binary files differnew file mode 100644 index 00000000000..63cd9f29037 --- /dev/null +++ b/Master/texmf-dist/doc/latex/latex4musicians/songs_g.pdf diff --git a/Master/tlpkg/bin/tlpkg-ctan-check b/Master/tlpkg/bin/tlpkg-ctan-check index e0188c867c4..588aae13535 100755 --- a/Master/tlpkg/bin/tlpkg-ctan-check +++ b/Master/tlpkg/bin/tlpkg-ctan-check @@ -382,7 +382,7 @@ my @TLP_working = qw( latex-tds latex-veryshortguide latex-via-exemplos latex-web-companion latex2e-help-texinfo latex2e-help-texinfo-fr latex2e-help-texinfo-spanish latex2man latex2nemeth - latex4wp latex4wp-it latexbangla latexbug + latex4musicians latex4wp latex4wp-it latexbangla latexbug latexcheat latexcheat-de latexcheat-esmx latexcheat-ptbr latexcolors latexcourse-rug latexdemo latexdiff latexfileinfo-pkgs latexfileversion diff --git a/Master/tlpkg/libexec/ctan2tds b/Master/tlpkg/libexec/ctan2tds index 0eea4b93cba..6d378103621 100755 --- a/Master/tlpkg/libexec/ctan2tds +++ b/Master/tlpkg/libexec/ctan2tds @@ -2438,6 +2438,7 @@ $standardsource = '(\.(bat|c|drv|dtx|fea|fdd|ins|sfd)' 'latex-veryshortguide','NULL', # doc package 'latex2e-help-texinfo','NULL', # doc package 'latex2man', 'NULL', # leave Makefile + 'latex4musicians', 'NULL', # leave Makefile 'latexdiff', 'NULL', # leave Makefile 'lettre', 'NULL', 'lhcyr', 'README', # historical diff --git a/Master/tlpkg/tlpsrc/collection-music.tlpsrc b/Master/tlpkg/tlpsrc/collection-music.tlpsrc index 5b2a78fb7b1..5db79c1429f 100644 --- a/Master/tlpkg/tlpsrc/collection-music.tlpsrc +++ b/Master/tlpkg/tlpsrc/collection-music.tlpsrc @@ -17,6 +17,7 @@ depend guitarchordschemes depend guitartabs depend harmony depend leadsheets +depend latex4musicians depend lilyglyphs depend lyluatex depend m-tx diff --git a/Master/tlpkg/tlpsrc/latex4musicians.tlpsrc b/Master/tlpkg/tlpsrc/latex4musicians.tlpsrc new file mode 100644 index 00000000000..e69de29bb2d --- /dev/null +++ b/Master/tlpkg/tlpsrc/latex4musicians.tlpsrc |