Mercurial > dottes
changeset 50:e666306c5ab1
Add list of tune first lines.
Add a list of tune first lines to the Booke. First, a small Python script to
filter a .abc file and spit out just enough to give a graphic of the first line
without the title. Then generate these graphics and generate a new section in the Booke
with a longtable of tune name and the first line graphic.
author | Jim Hague <jim.hague@laicatc.com> |
---|---|
date | Sun, 04 Mar 2012 20:16:48 +0000 |
parents | ac3bbc2195c1 |
children | 78a035e1a9bd |
files | abcfirstline.py dottes.tex.firstlines dottes.tex.footer dottes.tex.header makeBooke.sh makeGraphics.sh |
diffstat | 6 files changed, 64 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/abcfirstline.py Sun Mar 04 20:16:48 2012 +0000 @@ -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)
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/dottes.tex.firstlines Sun Mar 04 20:16:48 2012 +0000 @@ -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}
--- a/dottes.tex.footer Sun Mar 04 18:10:53 2012 +0000 +++ b/dottes.tex.footer Sun Mar 04 20:16:48 2012 +0000 @@ -1,3 +1,5 @@ +\end{longtable} + % ----- \end{document}
--- a/dottes.tex.header Sun Mar 04 18:10:53 2012 +0000 +++ b/dottes.tex.header Sun Mar 04 20:16:48 2012 +0000 @@ -3,6 +3,7 @@ \usepackage{helvet} \usepackage{newcent} \usepackage{fancyhdr} +\usepackage{longtable} % ----- Common variables
--- a/makeBooke.sh Sun Mar 04 18:10:53 2012 +0000 +++ b/makeBooke.sh Sun Mar 04 20:16:48 2012 +0000 @@ -50,6 +50,16 @@ 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
--- a/makeGraphics.sh Sun Mar 04 18:10:53 2012 +0000 +++ b/makeGraphics.sh Sun Mar 04 20:16:48 2012 +0000 @@ -21,9 +21,18 @@ 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