tuplet_start_ = false;
}
-Beam_rhythmic_element::Beam_rhythmic_element (Moment m, int i, bool inv,
- Rational factor, bool tuplet_start)
+Beam_rhythmic_element::Beam_rhythmic_element (Moment m, int i, bool inv,
+ Rational factor, bool tuplet_start)
{
start_moment_ = m;
rhythmic_importance_ = 0;
*tuplet_start_moment = Moment (-1, 1);
}
-
/*
Get the group start position, the next group starting position, and the
next beat starting position, given start_moment, base_moment,
// We use 1/8 as the base moment for the tuplet because it's
// the largest beamed value. If the tuplet is shorter, it's
// OK, the code still works
- int test_count = ( Moment (Rational (1, 8) / factor ) / base_moment).num ();
+ int test_count = ( Moment (Rational (1, 8) / factor) / base_moment).num ();
if (test_count > group_count) group_count = test_count;
}
*group_pos = *next_group_pos;
Moment tuplet_moment (tuplet);
Moment tuplet_dt = infos_[i].start_moment_ - tuplet_start_moment;
tuplet_number = tuplet.den ();
- // set the beat end (if not in a tuplet) and increment the next beat
+ // set the beat end and increment the next beat
if (infos_[i].start_moment_ == next_beat_pos)
{
- if (tuplet_number == 1)
- {
- infos_[i].rhythmic_importance_ = -1;
- next_beat_pos += options.base_moment_;
- }
- if (infos_[i].tuplet_start_)
- infos_[i].rhythmic_importance_ = -1;
+ infos_[i].rhythmic_importance_ = -1;
+ next_beat_pos += options.base_moment_;
}
// The rhythmic importance of a stem between beats depends on its fraction
// of a beat: those stems with a lower denominator are deemed more
// the fraction of the tuplet, instead of the fraction of
// a beat.
Moment ratio = (tuplet_number == 1)
- ? dt / options.base_moment_
- : tuplet_dt / Moment (1, 8) / tuplet_moment;
+ ? dt / options.base_moment_
+ : tuplet_dt / Moment (1, 8) / tuplet_moment;
if (infos_[i].rhythmic_importance_ >= 0)
infos_[i].rhythmic_importance_ = (int) ratio.den ();
Moment
Beaming_pattern::end_moment (int i) const
{
- Duration *dur = new Duration (2 + max (beamlet_count (i, LEFT),
- beamlet_count (i, RIGHT)),
- 0);
+ Duration dur (2 + max (beamlet_count (i, LEFT),
+ beamlet_count (i, RIGHT)),
+ 0);
- return infos_.at (i).start_moment_ + dur->get_length ();
+ return infos_.at (i).start_moment_
+ + infos_.at (i).factor_ * dur.get_length ();
}
bool