view makeAltoRecorderCFingering.sh @ 748:ce5c7214f9aa

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.
author Jim Hague <jim.hague@acm.org>
date Fri, 13 Oct 2017 15:44:15 +0100
parents 2f6e05d0aba0
children 06fec6764661
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 -depth 1 -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