forked from CryHavoc/dottes
40 lines
1.1 KiB
Bash
Executable File
40 lines
1.1 KiB
Bash
Executable File
#!/bin/bash
|
|
#
|
|
# Copy a booke to cello-friendly form. Bass clef, transposed down 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
|
|
|
|
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
|
|
# Move down either one octave or two, depending on the range
|
|
# of the tune. If there are any notes below middle C, transpose
|
|
# down one octave. The default is to transpose down two octaves.
|
|
middle="d"
|
|
if grep -v "^[A-Z]:" $filename | sed -e 's/"[^"]*"//g' | grep -q "[A-Z],"; then
|
|
middle="D"
|
|
fi
|
|
name=`basename $filename .abc`
|
|
sed -e "/^ *K:/s/$/ clef=bass middle=$middle/" $filename > $outdir/$name.abc
|
|
done
|