source file of the GNU LilyPond music typesetter
- (c) 1998--2006 Han-Wen Nienhuys <hanwen@xs4all.nl>
+ (c) 1998--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
*/
#include "pitch.hh"
o--;
}
+ /*
+ we're effictively hardcoding the octave to 6 whole-tones,
+ which is as arbitrary as coding it to 1200 cents
+ */
Rational tones ((o + n / scale_->step_tones_.size ()) * 6, 1);
tones += scale_->step_tones_[n % scale_->step_tones_.size ()];
alteration_ = Rational (0);
alteration_ -= tone_pitch () - pitch;
}
- while (alteration_ < Rational(-1))
+ while (alteration_ < Rational (-1))
{
if (notename_ == 0)
{
{
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;
{
Pitch *r = (Pitch *) SCM_CELL_WORD_1 (s);
scm_puts ("#<Pitch ", port);
- scm_display (scm_makfrom0str (r->to_string ().c_str ()), port);
+ scm_display (ly_string2scm (r->to_string ()), port);
scm_puts (" >", port);
return 1;
}
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 ());
+}