Mercurial > dottes
changeset 537:cf2fe741a582
Try Cello transposition algorithm again.
author | Jim Hague <jim.hague@acm.org> |
---|---|
date | Sun, 13 Dec 2015 22:47:24 +0000 |
parents | c0130d1ee053 |
children | e9e2488bd0b7 |
files | makeCello.sh |
diffstat | 1 files changed, 10 insertions(+), 8 deletions(-) [+] |
line wrap: on
line diff
--- a/makeCello.sh Sun Dec 13 22:46:55 2015 +0000 +++ b/makeCello.sh Sun Dec 13 22:47:24 2015 +0000 @@ -17,22 +17,24 @@ # 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; + over=$(($2 - 108)) + if (($over < 0)); then + over=0 fi - over=$(($2 - 108)) - under=$((104 - $3)) - if (($over <= $under)); then + under=$((100 - $3)) + if (($under < 0)); then + under=0 + fi + if (($over < $under)); then return 1; fi