view makeAltoRecorderCFingering.sh @ 738:69a7499817c8 build-default-284

On Nook and A5 prints, start a new page with each tune and centre vertically.. A5 mostly did, but ran into trouble with longer comments on a tune. This may give blank space after tunes where a long comment overflows onto another page, but I think for now it's better to have each tune at the top of the page. Or rather, and this is the other change, in the middle of the page. Centre the page content for A5 and Nook.
author Jim Hague <jim.hague@acm.org>
date Thu, 12 Oct 2017 14:50:51 +0100
parents 2f6e05d0aba0
children ce5c7214f9aa
line wrap: on
line source

#!/bin/bash
#
# Transpose a book for alto recorder with C fingering.

if [ $# != 1 ]; then
    echo "Usage: makeAltoRecorderCFingering.sh <book dir name>"
    exit 1
fi

# Transpose up (return 0) if bottom note was < F (< C for recorder).
transposeup()
{
    (($3 < 103))
}

dir=`pwd`

booke=$dir/$1
outdir=$dir/$1-AltoRecorderCFingering

mkdir -p $outdir

# Copy book component items.
cp $booke/*.txt $outdir

echo "Alto Recorder (C Fingering)" > $outdir/instrument.txt

find $booke -name "*.abc" | sort |
    while read filename
    do
        name=`basename $filename .abc`
        range=`./abcrange.py $filename`

        # Transpose concert pitch down a fifth.
        # If there are any notes below 'F' (recorder 'C'), transpose
        # up a seventh instead.
        transpose=-5
        if transposeup $range; then
            transpose=7
        fi

        # There's no point in having transposed chords. Remove from the
        # abc before transposing. Some badly formed chord items can give
        # erroneous output from abc2abc (like, strings of binary gibberish).
        sed -e "s/\"[^\"]*\"//g" $filename > $outdir/$name.abc.tmp

        # Transpose. By default abc2abc will report errors in the output,
        # but this messes up output formatting so stop it.
        abc2abc $outdir/$name.abc.tmp -e -t $transpose > $outdir/$name.abc
        rm $outdir/$name.abc.tmp
    done