Try Cello transposition algorithm again.

This commit is contained in:
Jim Hague 2015-12-13 22:47:24 +00:00
parent 6d6fffa050
commit 3fc263e207
1 changed files with 10 additions and 8 deletions

View File

@ -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