makeHornInF.sh
changeset 216 64b84dea3337
child 217 a8a46fd79d5c
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/makeHornInF.sh	Wed Feb 20 13:03:40 2013 +0000
@@ -0,0 +1,39 @@
+#!/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
+
+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.
+        abc2abc $tmpfile -e -t $transpose > $outdir/$name.abc
+        rm $tmpfile
+    done