view makeHornInF.sh @ 223:0ef955669a9a

Make transposed tunes use the original audio. The aim of MIDI and MP3 is to allow the user to hear what a tune sounds like. For transposed bookes, I think this should be reused from the main booke page, because hearing it at the transposed pitch isn't a major help. And in fact given the way cello transposition is done, the sound won't be transposed anyway. And Jane hasn't complained. This will speed up building the bookes by removing audio generation, the slowest process, from the transposed bookes.
author Jim Hague <jim.hague@acm.org>
date Fri, 22 Feb 2013 01:09:37 +0000
parents 1a9d937b7765
children 7b98278d6e8b
line wrap: on
line source

#!/bin/bash
#
# Transpose a book for Horn in F.

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

dir=`pwd`

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

mkdir -p $outdir

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

find $booke -name "*.abc" | sort |
    while read filename
    do
        name=`basename $filename .abc`
        tmpfile=$outdir/$name.abc.tmp

        # Strip out guitar chords first. This has the advantage of removing
        # text with arbitary lower case characters too.
        sed -e "s/\"[^\"]*\"//g" $filename > $tmpfile

        # Transpose concert pitch up a fifth.
        # If there are any notes at or above C above middle C, transpose
        # down a seventh instead.
        transpose=5
        if grep -v "^[A-Z]:" $tmpfile | sed -e 's/"[^"]*"//g' | grep -q "[a-g]"; then
            transpose=-7
        fi

        # Transpose. By default abc2abc will report errors in the output,
        # but this messes up output formatting so stop it. Also force all
        # output to be in treble clef; some lower tunes with the odd high
        # note will otherwise appear in bass clef, which is not what this
        # crap horn player wants.
        abc2abc $tmpfile -e -t $transpose | \
            sed -e "/^ *K:/s/$/ clef=treble/" > $outdir/$name.abc
        rm $tmpfile
    done