Mercurial > dottes
view makeCello.sh @ 359:2a7d03d6a89f
Use txt2tags to format intro text.
That way we can include basic markup in the into text and use it in
both LaTeX and HTML.
Take advantage of this to expand the wording of the intro text in all
books.
author | Jim Hague <jim.hague@acm.org> |
---|---|
date | Wed, 21 Aug 2013 10:28:10 +0100 |
parents | 1073829494e3 |
children | cf2fe741a582 |
line wrap: on
line source
#!/bin/bash # # Copy a booke to cello-friendly form. Bass clef, transposed down # 1 or 2 octaves. # # It would be easier to do with transpose in dottes.fmt, but I can't get # that to work properly for a 2 octave downward transpose. # # This relies on abcm2ps >= 6.0 but does not check for it. if [ $# != 1 ]; then echo "Usage: makeCello.sh <book dir name>" exit 1 fi # Return 0 if we should transpose down 2 octaves, 1 if just one # octave. $2 is highest note, $3 is lowest note. # # If range is G to d', transpose down 2 octaves. # If lowest note is < C, transpose down 1 octave. # Otherwise calculate the distance above d for the highest note on a one # octave transposition, and the distance below G on a two octave # transposition. Find the smallest, and use the corresponding # transposition. transposedowntwo() { if (($3 >= 104 && $2 <= 115)); then return 0; fi if (($3 < 100)); then return 1; fi over=$(($2 - 108)) under=$((104 - $3)) if (($over <= $under)); then return 1; fi return 0; } dir=`pwd` booke=$dir/$1 outdir=$dir/$1-Cello mkdir -p $outdir # Copy book component items. cp $booke/*.txt $outdir echo "Cello" > $outdir/instrument.txt find $booke -name "*.abc" | sort | while read filename do name=`basename $filename .abc` range=`./abcrange.py $filename` # Move down either one octave or two, depending on the range # of the tune. middle="D" if transposedowntwo $range; then middle="d" fi sed -e "/^ *K:/s/$/ clef=bass middle=$middle/" $filename > $outdir/$name.abc done