diff --git a/abcfirstline.py b/abcfirstline.py new file mode 100755 index 0000000..26a5daa --- /dev/null +++ b/abcfirstline.py @@ -0,0 +1,30 @@ +#!/usr/bin/env python +# +# Write out a modified version of a .abc file with just the data +# to print the first line of the music only. +# + +import sys + +def process(inf): + print "X:1" + for line in inf: + line = line.strip() + start = line[:2] + if start[0] != "|" and start[1] == ":": + if start[0] in ["M", "K", "L"]: + print line + elif start[0] != "%": + print line + if line[-1] != "\\": + break + +if len(sys.argv) > 1: + for arg in sys.argv[1:]: + try: + inf = open(arg, "r") + process(inf) + finally: + inf.close() +else: + process(sys.stdin) diff --git a/dottes.tex.firstlines b/dottes.tex.firstlines new file mode 100644 index 0000000..a716705 --- /dev/null +++ b/dottes.tex.firstlines @@ -0,0 +1,12 @@ +% ----- + +\newpage +\section{List of tune first lines} + +You know the feeling. Everyone has just launched into a well-loved tune. +You've heard it before, but don't remember the name. So here's a list of +tune first lines to help you figure out what it is in time to join in. + +\setlength\LTleft{0pt} +\setlength\LTright{0pt} +\begin{longtable}{lr} diff --git a/dottes.tex.footer b/dottes.tex.footer index ac9e736..6e7b565 100644 --- a/dottes.tex.footer +++ b/dottes.tex.footer @@ -1,3 +1,5 @@ +\end{longtable} + % ----- \end{document} diff --git a/dottes.tex.header b/dottes.tex.header index 56745b7..5c70e6b 100644 --- a/dottes.tex.header +++ b/dottes.tex.header @@ -3,6 +3,7 @@ \usepackage{helvet} \usepackage{newcent} \usepackage{fancyhdr} +\usepackage{longtable} % ----- Common variables diff --git a/makeBooke.sh b/makeBooke.sh index 21c4d23..2f8cf7b 100755 --- a/makeBooke.sh +++ b/makeBooke.sh @@ -50,6 +50,16 @@ find $booke -name "*.abc" | sort | echo -E "\end{center}" >> $builddir/$output done +cat dottes.tex.firstlines >> $builddir/$output + +find $booke -name "*.abc" | sort | + while read filename + do + title=`grep "^T:" $filename | head -1 | sed -e "s/^T: *//"` + name=`basename $filename .abc` + echo -E "$title & \raisebox{-.25\height}{\includegraphics[width=8cm]{$graphicsdir/firstline-$name}} \\\\" >> $builddir/$output + done + cat dottes.tex.footer >> $builddir/$output cp $outputa4 $builddir diff --git a/makeGraphics.sh b/makeGraphics.sh index 511534e..604b38a 100755 --- a/makeGraphics.sh +++ b/makeGraphics.sh @@ -21,9 +21,18 @@ find $booke -name "*.abc" | sort | while read filename do name=`basename $filename .abc` + + # Make the tune graphic. abcm2ps -j0 +c -n -E -O $graphicsdir/$name.eps $filename # Make $name.eps so we can build with LaTeX. mv $graphicsdir/${name}001.eps $graphicsdir/${name}.eps # And make the corresponding PDF for pdflatex. epstopdf --outfile=$graphicsdir/$name.pdf $graphicsdir/${name}.eps + + # and make the first line graphic. + $dir/abcfirstline.py $filename > firstline.abc + abcm2ps +c -M +Q -E -O $graphicsdir/firstline-$name.eps firstline.abc + mv $graphicsdir/firstline-${name}001.eps $graphicsdir/firstline-${name}.eps + rm firstline.abc + epstopdf --outfile=$graphicsdir/firstline-$name.pdf $graphicsdir/firstline-${name}.eps done