--- /dev/null
+\version "2.19.14"
+
+\header {
+ texidoc = "Overlong tuplet span specifications are reduced
+to the actual length."
+}
+
+\layout { ragged-right = ##t }
+
+\relative \new Staff \with { subdivideBeams = ##t
+ baseMoment = #(ly:make-moment 1/8)
+ }
+{
+ \tuplet 3/2 4 { g16 a b } c8 d e f2 |
+ \set baseMoment = #(ly:make-moment 1/12)
+ \tuplet 3/2 4
+ { d16 e f g a b c,16 d e f g a
+ \unset baseMoment
+ b, c d }
+ \tuplet 3/2 { e16 f8 } g4 |
+}
if (m.main_part_ < music_get_length ().main_part_)
{
+ spanner_duration_ =
+ min (music_get_length () - next_split_mom_, spanner_duration_);
tuplet_handler_.set_context (get_outlet ());
report_event (create_event (START));
{
if (Duration *d = Duration::unsmob (get_music ()->get_property ("duration")))
spanner_duration_ = d->get_length ();
+ else if (Moment *mp
+ = Moment::unsmob (get_outlet ()->get_property ("tupletSpannerDuration")))
+ spanner_duration_ = mp->main_part_;
else
- {
- spanner_duration_ = music_get_length ();
-
- Moment *mp
- = Moment::unsmob (get_outlet ()->get_property ("tupletSpannerDuration"));
- if (mp)
- spanner_duration_ = min (mp->main_part_, spanner_duration_);
- }
+ spanner_duration_.set_infinite (1);
Music_wrapper_iterator::construct_children ();