From 3fc263e2079ace1e114b6edf75923e858924c35d Mon Sep 17 00:00:00 2001 From: Jim Hague Date: Sun, 13 Dec 2015 22:47:24 +0000 Subject: [PATCH] Try Cello transposition algorithm again. --- makeCello.sh | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/makeCello.sh b/makeCello.sh index 7f7e4f2..67ca279 100755 --- a/makeCello.sh +++ b/makeCello.sh @@ -17,22 +17,24 @@ fi # octave. $2 is highest note, $3 is lowest note. # # If range is G to d', transpose down 2 octaves. -# If lowest note is < C, transpose down 1 octave. # Otherwise calculate the distance above d for the highest note on a one -# octave transposition, and the distance below G on a two octave +# octave transposition, and the distance below C on a two octave # transposition. Find the smallest, and use the corresponding -# transposition. +# transposition, preferring 2 octaves in case of a tie. transposedowntwo() { if (($3 >= 104 && $2 <= 115)); then return 0; fi - if (($3 < 100)); then - return 1; - fi over=$(($2 - 108)) - under=$((104 - $3)) - if (($over <= $under)); then + if (($over < 0)); then + over=0 + fi + under=$((100 - $3)) + if (($under < 0)); then + under=0 + fi + if (($over < $under)); then return 1; fi