Mercurial > dottes
view makeHornInF.sh @ 312:8bc92e044e0a
Move tune and first line inclusion code into macros.
Also use tune title, not name, as hyperlink targets. This removes the need to pass
the name into the macros.
author | Jim Hague <jim.hague@acm.org> |
---|---|
date | Fri, 12 Jul 2013 11:36:14 +0100 |
parents | 7b98278d6e8b |
children | b4a0161e8870 |
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 echo "Horn in F" > $outdir/instrument.txt 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