lib/mext/numeric/mtopch.rb in ruby-mext-0.9.0 vs lib/mext/numeric/mtopch.rb in ruby-mext-0.9.1

- old
+ new

@@ -7,14 +7,27 @@ # #:nodoc: def mtopch - intv = (self - MIDI_MIDDLE_C) / CHROMATIC_NOTES_PER_OCTAVE + semi = (self - ZMP) / CNPO + oct = semi.to_i + semi = (semi - oct) * CNPO + semi %= CNPO + semi = (self > ZMP) ? semi : -((CNPO - semi) % CNPO) - intv_octave = intv.to_i - intv_semi = (intv - intv_octave) * CHROMATIC_NOTES_PER_OCTAVE; + oct + (semi / PCC) - PITCH_MIDDLE_C + intv_octave + (intv_semi/100.0); +# intv = self - MIDI_MIDDLE_C +# intv /= CHROMATIC_NOTES_PER_OCTAVE + +# intv_octave = intv.floor +# intv_semi = (intv_octave >= 0.0) ? (intv - intv_octave) : (1 - (intv_octave - intv)) +# +# intv_semi *= CHROMATIC_NOTES_PER_OCTAVE; +# intv_semi %= CHROMATIC_NOTES_PER_OCTAVE; + +# PITCH_MIDDLE_C + intv_octave + (intv_semi/100.0); + end end