X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Fpitch.cc;h=7c43708890d506db29b1059ecafc77ef4d56b7bc;hb=bcfda82911036559d8fb5681efb9ba2efeddeb3d;hp=4d983ab6d5e4e6a729e0440c51d9e6e302426285;hpb=7a3c3526e082ada6fefbe564315046a14ecf609c;p=lilypond.git diff --git a/lily/pitch.cc b/lily/pitch.cc index 4d983ab6d5..7c43708890 100644 --- a/lily/pitch.cc +++ b/lily/pitch.cc @@ -3,7 +3,7 @@ source file of the GNU LilyPond music typesetter - (c) 1998--2006 Han-Wen Nienhuys + (c) 1998--2007 Han-Wen Nienhuys */ #include "pitch.hh" @@ -168,10 +168,10 @@ Pitch::to_string () const { int n = (notename_ + 2) % scale_->step_tones_.size (); string s = ::to_string (char (n + 'a')); - Rational qtones = alteration_ * Rational (4,1); - int qt = int (rint (Real (qtones))); + Rational qtones = alteration_ * Rational (4,1); + int qt = int (rint (Real (qtones))); - s += string (accname[qt + 4]); + s += string (accname[qt + 4]); if (octave_ >= 0) { int o = octave_ + 1; @@ -245,7 +245,7 @@ Pitch::print_smob (SCM s, SCM port, scm_print_state *) { Pitch *r = (Pitch *) SCM_CELL_WORD_1 (s); scm_puts ("#to_string ().c_str ()), port); + scm_display (ly_string2scm (r->to_string ()), port); scm_puts (" >", port); return 1; } @@ -302,5 +302,13 @@ Pitch::transposed (Pitch d) const return p; } +Rational NATURAL_ALTERATION (0); Rational FLAT_ALTERATION (-1, 2); +Rational DOUBLE_FLAT_ALTERATION (-1); Rational SHARP_ALTERATION (1, 2); + +Pitch +Pitch::negated () const +{ + return pitch_interval (*this, Pitch ()); +}