Mercurial > dottes
annotate makeHornInF.sh @ 288:5d367c68a494
Demote Staffordshire Hornpipe and Sonny Brogan's Mazurka to the Library.
author | Jim Hague <jim.hague@acm.org> |
---|---|
date | Fri, 05 Jul 2013 20:16:46 +0100 |
parents | 7b98278d6e8b |
children | b4a0161e8870 |
rev | line source |
---|---|
216 | 1 #!/bin/bash |
2 # | |
3 # Transpose a book for Horn in F. | |
4 | |
5 if [ $# != 1 ]; then | |
6 echo "Usage: makeFHorn.sh <book dir name>" | |
7 exit 1 | |
8 fi | |
9 | |
10 dir=`pwd` | |
11 | |
12 booke=$dir/$1 | |
13 outdir=$dir/$1-HornInF | |
14 | |
15 mkdir -p $outdir | |
16 | |
217
a8a46fd79d5c
Fix up problems in Horn in F transposition.
Jim Hague <jim.hague@laicatc.com>
parents:
216
diff
changeset
|
17 # Copy book component items. |
a8a46fd79d5c
Fix up problems in Horn in F transposition.
Jim Hague <jim.hague@laicatc.com>
parents:
216
diff
changeset
|
18 cp $booke/*.txt $outdir |
a8a46fd79d5c
Fix up problems in Horn in F transposition.
Jim Hague <jim.hague@laicatc.com>
parents:
216
diff
changeset
|
19 |
263
7b98278d6e8b
Add instrument name into title page for transpositions.
Jim Hague <jim.hague@acm.org>
parents:
218
diff
changeset
|
20 echo "Horn in F" > $outdir/instrument.txt |
7b98278d6e8b
Add instrument name into title page for transpositions.
Jim Hague <jim.hague@acm.org>
parents:
218
diff
changeset
|
21 |
216 | 22 find $booke -name "*.abc" | sort | |
23 while read filename | |
24 do | |
25 name=`basename $filename .abc` | |
26 tmpfile=$outdir/$name.abc.tmp | |
27 | |
28 # Strip out guitar chords first. This has the advantage of removing | |
29 # text with arbitary lower case characters too. | |
30 sed -e "s/\"[^\"]*\"//g" $filename > $tmpfile | |
31 | |
32 # Transpose concert pitch up a fifth. | |
33 # If there are any notes at or above C above middle C, transpose | |
34 # down a seventh instead. | |
35 transpose=5 | |
36 if grep -v "^[A-Z]:" $tmpfile | sed -e 's/"[^"]*"//g' | grep -q "[a-g]"; then | |
37 transpose=-7 | |
38 fi | |
39 | |
40 # Transpose. By default abc2abc will report errors in the output, | |
218
1a9d937b7765
Force Horn in F output to be in treble clef.
Jim Hague <jim.hague@laicatc.com>
parents:
217
diff
changeset
|
41 # but this messes up output formatting so stop it. Also force all |
1a9d937b7765
Force Horn in F output to be in treble clef.
Jim Hague <jim.hague@laicatc.com>
parents:
217
diff
changeset
|
42 # output to be in treble clef; some lower tunes with the odd high |
1a9d937b7765
Force Horn in F output to be in treble clef.
Jim Hague <jim.hague@laicatc.com>
parents:
217
diff
changeset
|
43 # note will otherwise appear in bass clef, which is not what this |
1a9d937b7765
Force Horn in F output to be in treble clef.
Jim Hague <jim.hague@laicatc.com>
parents:
217
diff
changeset
|
44 # crap horn player wants. |
1a9d937b7765
Force Horn in F output to be in treble clef.
Jim Hague <jim.hague@laicatc.com>
parents:
217
diff
changeset
|
45 abc2abc $tmpfile -e -t $transpose | \ |
1a9d937b7765
Force Horn in F output to be in treble clef.
Jim Hague <jim.hague@laicatc.com>
parents:
217
diff
changeset
|
46 sed -e "/^ *K:/s/$/ clef=treble/" > $outdir/$name.abc |
216 | 47 rm $tmpfile |
48 done |