Introduce mechanism for having different tune images for compact printed output.
authorJim Hague <jim.hague@acm.org>
Fri, 13 Oct 2017 15:44:15 +0100
changeset 748 ce5c7214f9aa
parent 746 34c7947b4542
child 749 06fec6764661
Introduce mechanism for having different tune images for compact printed output. Sort alternate .abc in subdir 'Compact' under the booke dir. Use that as the graphic for A5 output, assuming it will be vertically more compact. Use Bear Dance as an example, as it has commentary that currently overflows an A5 landscape page. For the moment, transposed Bookes don't transpose and so don't use Compact.
Session/Compact/BearDance.abc
dottes.tex.firstline-tune
dottes.tex.tune
makeAll.sh
makeAltoRecorderCFingering.sh
makeBooke.sh
makeBookeTunePages.sh
makeCello.sh
makeGraphics.sh
makeHornInF.sh
makeWeb.sh
makeWebAudio.sh
makeWebGraphics.sh
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Session/Compact/BearDance.abc	Fri Oct 13 15:44:15 2017 +0100
@@ -0,0 +1,10 @@
+X:1
+T:Bear Dance
+M:2/4
+L:1/16
+Q:1/4=120
+K:Em
+"Em" B2 E2 E4| B2 E2 E3 F| G2G2F2G2|"D" A4G2A2| \
+|"Em" B2B2 "D" A2A2|"Em" G2G2 "D" F4|"Em" E2G2 "D" F2D2|"Em" E4 E4:|
+"Em" E2G2E2G2|"D" F2D2D4|"C" E2G2E2G2|"D" A4G2A2| \
+|"Em" B2B2 "D" A2A2|"C" G2G2 "D" F4|"Em" E2G2 "D" F2D2|"Em" E4 E4:|
--- a/dottes.tex.firstline-tune	Fri Oct 13 10:50:18 2017 +0100
+++ b/dottes.tex.firstline-tune	Fri Oct 13 15:44:15 2017 +0100
@@ -1,1 +1,1 @@
-\showfirstline{$name}{$fulltitle}{$graphicsdir/firstline-$name}
+\showfirstline{$name}{$fulltitle}{$firstlineimagefile}
--- a/dottes.tex.tune	Fri Oct 13 10:50:18 2017 +0100
+++ b/dottes.tex.tune	Fri Oct 13 15:44:15 2017 +0100
@@ -1,5 +1,5 @@
 \tunestart
-\showtune{$name}{$title}{$subtitle}{$fulltitle}{$tradition}{$composer}{$parts}{$graphicsdir/$name}
+\showtune{$name}{$title}{$subtitle}{$fulltitle}{$tradition}{$composer}{$parts}{$tuneimagefile}
 $notes
 
 $history
--- a/makeAll.sh	Fri Oct 13 10:50:18 2017 +0100
+++ b/makeAll.sh	Fri Oct 13 15:44:15 2017 +0100
@@ -9,12 +9,20 @@
 
 makeABooke()
 {
+    # Print graphics.
     ./makeGraphics.sh "$1"
+
+    # Normal graphics printed output.
     ./makeBookeTunePages.sh "$1"
     ./makeBooke.sh A4 "$1"
+    ./makeBooke.sh Nook "$1"
+
+    # Compact graphics printed output.
+    ./makeBookeTunePages.sh --use-compact "$1"
     ./makeBooke.sh A5 "$1"
     ./makeBooklet.sh "$1"
-    ./makeBooke.sh Nook "$1"
+
+    # Web output.
     ./makeWebGraphics.sh "$1"
     ./makeWebAudio.sh "$1"
     ./makeWeb.sh "$1" "$1" "$2"
@@ -22,12 +30,20 @@
 
 makeATransposedBooke()
 {
+    # Print graphics.
     ./makeGraphics.sh "$1"
+
+    # Normal graphics printed output.
     ./makeBookeTunePages.sh "$1"
     ./makeBooke.sh A4 "$1"
+    ./makeBooke.sh Nook "$1"
+
+    # Compact graphics printed output.
+    ./makeBookeTunePages.sh --use-compact "$1"
     ./makeBooke.sh A5 "$1"
     ./makeBooklet.sh "$1"
-    ./makeBooke.sh Nook "$1"
+
+    # Web output. Uses audio from main booke.
     ./makeWebGraphics.sh "$1"
     ./makeWeb.sh "$1" "$2" "$3"
 }
--- a/makeAltoRecorderCFingering.sh	Fri Oct 13 10:50:18 2017 +0100
+++ b/makeAltoRecorderCFingering.sh	Fri Oct 13 15:44:15 2017 +0100
@@ -25,7 +25,7 @@
 
 echo "Alto Recorder (C Fingering)" > $outdir/instrument.txt
 
-find $booke -name "*.abc" | sort |
+find $booke -depth 1 -name "*.abc" | sort |
     while read filename
     do
         name=`basename $filename .abc`
--- a/makeBooke.sh	Fri Oct 13 10:50:18 2017 +0100
+++ b/makeBooke.sh	Fri Oct 13 15:44:15 2017 +0100
@@ -17,6 +17,12 @@
 builddir=$dir/build
 booketex=$builddir/dottes.tex
 bookepdf=$builddir/dottes.pdf
+usecompact=""
+
+if [ "$1" = "--use-compact" ]; then
+    usecompact="yes"
+    shift
+fi
 
 papersize=$1
 shift
--- a/makeBookeTunePages.sh	Fri Oct 13 10:50:18 2017 +0100
+++ b/makeBookeTunePages.sh	Fri Oct 13 15:44:15 2017 +0100
@@ -8,8 +8,15 @@
 # makeGraphics.sh to make these.
 #
 
+usecompact=""
+
+if [ $# -gt 1 -a "$1" = "--use-compact" ]; then
+    usecompact="yes"
+    shift
+fi
+
 if [ $# != 1 ]; then
-    echo "Usage: makeBookeTunePages.sh <book dir name>"
+    echo "Usage: makeBookeTunePages.sh [--use-compact] <book dir name>"
     exit 1
 fi
 
@@ -25,11 +32,28 @@
 
 rm -f $tunesoutput $indexoutput
 
-# Now, for each tune, make the tune graphic and add it, inside a
-# centre section, so the document. Then add a TOC entry.
-find $booke -name "*.abc" | sort |
+# Now, for each tune, build the tunes part and the first line sections
+# of the document.
+find $booke -depth 1 -name "*.abc" | sort |
     while read filename
     do
-        $dir/abctemplate.py --latex --value "graphicsdir=$graphicsdir" --template $dir/dottes.tex.tune $filename >> $tunesoutput
-        $dir/abctemplate.py --latex --value "graphicsdir=$graphicsdir" --template $dir/dottes.tex.firstline-tune $filename >> $indexoutput
+        name=`basename $filename .abc`
+        tuneimagefile="${graphicsdir}/${name}"
+        compacttuneimagefile="${graphicsdir}/compact-${name}"
+        firstlineimagefile="${graphicsdir}/firstline-${name}"
+
+        if [ "$usecompact" -a -f ${compacttuneimagefile}.pdf ]; then
+            tuneimagefile=$compacttuneimagefile
+        fi
+
+        $dir/abctemplate.py \
+            --latex \
+            --value "tuneimagefile=${tuneimagefile}" \
+            --template $dir/dottes.tex.tune \
+            $filename >> $tunesoutput
+        $dir/abctemplate.py \
+            --latex \
+            --value "firstlineimagefile=${firstlineimagefile}" \
+            --template $dir/dottes.tex.firstline-tune \
+            $filename >> $indexoutput
     done
--- a/makeCello.sh	Fri Oct 13 10:50:18 2017 +0100
+++ b/makeCello.sh	Fri Oct 13 15:44:15 2017 +0100
@@ -53,7 +53,7 @@
 
 echo "Cello" > $outdir/instrument.txt
 
-find $booke -name "*.abc" | sort |
+find $booke -depth 1 -name "*.abc" | sort |
     while read filename
     do
         name=`basename $filename .abc`
--- a/makeGraphics.sh	Fri Oct 13 10:50:18 2017 +0100
+++ b/makeGraphics.sh	Fri Oct 13 15:44:15 2017 +0100
@@ -17,7 +17,7 @@
 mkdir -p $graphicsdir
 
 # Now, for each tune, make the tune graphic.
-find $booke -name "*.abc" | sort |
+find $booke -depth 1 -name "*.abc" | sort |
     while read filename
     do
         name=`basename $filename .abc`
@@ -42,3 +42,24 @@
         pdfcrop $graphicsdir/firstline-$name-tocrop.pdf $graphicsdir/firstline-$name.pdf
         rm $graphicsdir/firstline-$name-tocrop.pdf
     done
+
+# And make any compact tune graphics.
+if [ ! -d ${booke}/Compact ]; then
+    exit
+fi
+
+find ${booke}/Compact -depth 1 -name "*.abc" | sort |
+    while read filename
+    do
+        name=`basename $filename .abc`
+
+        # Make the tune graphic.
+        abcm2ps -E -F singletune -O $graphicsdir/compact-${name}.eps $filename
+        # Make $name.eps so we can build with LaTeX.
+        mv $graphicsdir/compact-${name}001.eps $graphicsdir/compact-${name}.eps
+        # And make the corresponding PDF.
+        epstopdf --outfile=$graphicsdir/compact-${name}-tocrop.pdf $graphicsdir/compact-${name}.eps
+        # And crop it, so the graphic is as big as possible on the page.
+        pdfcrop $graphicsdir/compact-${name}-tocrop.pdf $graphicsdir/compact-${name}.pdf
+        rm $graphicsdir/compact-${name}-tocrop.pdf
+    done
--- a/makeHornInF.sh	Fri Oct 13 10:50:18 2017 +0100
+++ b/makeHornInF.sh	Fri Oct 13 15:44:15 2017 +0100
@@ -25,7 +25,7 @@
 
 echo "Horn in F" > $outdir/instrument.txt
 
-find $booke -name "*.abc" | sort |
+find $booke -depth 1 -name "*.abc" | sort |
     while read filename
     do
         name=`basename $filename .abc`
--- a/makeWeb.sh	Fri Oct 13 10:50:18 2017 +0100
+++ b/makeWeb.sh	Fri Oct 13 15:44:15 2017 +0100
@@ -67,7 +67,7 @@
 # Now, for each tune, make the tune page.
 rm -f $webdir/$tunelist
 declare -a filenames
-filenames=(`find $bookedir -name "*.abc" | sort`)
+filenames=(`find $bookedir -depth 1 -name "*.abc" | sort`)
 nofiles=${#filenames[@]}
 for (( i=0; i < ${nofiles}; i++ ))
 do
--- a/makeWebAudio.sh	Fri Oct 13 10:50:18 2017 +0100
+++ b/makeWebAudio.sh	Fri Oct 13 15:44:15 2017 +0100
@@ -66,7 +66,7 @@
 }
 
 # Generate audio files and slow speed (currently half speed) audio files.
-find $booke -name "*.abc" | sort |
+find $booke -depth 1 -name "*.abc" | sort |
     while read filename
     do
         makeaudiofiles $filename
--- a/makeWebGraphics.sh	Fri Oct 13 10:50:18 2017 +0100
+++ b/makeWebGraphics.sh	Fri Oct 13 15:44:15 2017 +0100
@@ -20,7 +20,7 @@
 # Now, for each tune, make the main tune and tune first line bitmaps.
 # Do this to temp files and rename into place to make updates as
 # atomic as possible.
-find $booke -name "*.abc" | sort |
+find $booke -depth 1 -name "*.abc" | sort |
     while read filename
     do
         name=`basename $filename .abc`