diff makeAltoRecorderCFingering.sh @ 671:2f6e05d0aba0

Add experimental Alto Recorder (C Fingering) instrument. This should produce the bookes and website, but the website is not linked into the main page yet.
author Jim Hague <jim.hague@acm.org>
date Thu, 14 Sep 2017 10:41:46 +0100
parents makeHornInF.sh@ecc62b487e57
children ce5c7214f9aa
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/makeAltoRecorderCFingering.sh	Thu Sep 14 10:41:46 2017 +0100
@@ -0,0 +1,51 @@
+#!/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