From 4dd92c2d6ecef5fb5fbbf8f97c5b5ffdeacb5a9d Mon Sep 17 00:00:00 2001 From: Han-Wen Nienhuys Date: Fri, 5 Aug 2005 19:37:15 +0000 Subject: [PATCH] * lily/beam.cc (rest_collision_callback): call position_beam() if necessary. * input/proportional.ly: new file. * lily/beam.cc (print): read break-overshoot to determine where to stop/start broken beams. --- ChangeLog | 3 +++ input/proportional.ly | 17 ++++++++++++++--- lily/beam.cc | 9 +++++++++ 3 files changed, 26 insertions(+), 3 deletions(-) diff --git a/ChangeLog b/ChangeLog index a127bca458..98e0fdfd35 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,8 @@ 2005-08-05 Han-Wen Nienhuys + * lily/beam.cc (rest_collision_callback): call position_beam() if + necessary. + * input/regression/spacing-uniform-stretching.ly: new file. * lily/spacing-loose-columns.cc (set_loose_columns): use robust_relative_extent(). diff --git a/input/proportional.ly b/input/proportional.ly index f0d7a7db32..2415f25a1b 100644 --- a/input/proportional.ly +++ b/input/proportional.ly @@ -39,7 +39,7 @@ staffKind = "RhythmicStaff" \relative c'' \new StaffGroup << - \new \staffKind << + \new \staffKind \new Voice << { \skip 2 \skip 2 @@ -59,6 +59,16 @@ staffKind = "RhythmicStaff" \times 5/4 { c16 c c] r32[ c32 c16 c] r8 } } + \times 10/12 { + \times 7/6 { + r32[ c16. c32 c16.] r4 + r16[ c16 c16. c32 + } + \times 5/8 { + c16 c16 c16. c32] r8 c8[ c8] r4. + } + } + %{ \times 10/12 { \times 7/6 { r32[ c32. c16 c16.] r4 @@ -68,6 +78,7 @@ staffKind = "RhythmicStaff" c16 c c16. c32] r8 c8[ c] r4 } } + %} \times 4/7 { r8 @@ -86,7 +97,7 @@ staffKind = "RhythmicStaff" } } >> - \new \staffKind + \new \staffKind \new Voice << { \times 9/5 { @@ -108,7 +119,7 @@ staffKind = "RhythmicStaff" } } \times 10/12 { - \times 7/9 { + \times 7/10 { c16 c16 c8] r8 r4 r8.[ c32 c16 c r8 c16 c16 } diff --git a/lily/beam.cc b/lily/beam.cc index 681efd206a..6c6ed15546 100644 --- a/lily/beam.cc +++ b/lily/beam.cc @@ -1299,6 +1299,15 @@ Beam::rest_collision_callback (SCM element_smob, SCM axis) SCM s = beam->get_property ("positions"); if (scm_is_pair (s) && scm_is_number (scm_car (s))) pos = ly_scm2interval (s); + else + { + /* + UGH. TODO: fix dependency tracking. + */ + position_beam (beam); + pos = ly_scm2interval (beam->get_property ("positions")); + } + Real staff_space = Staff_symbol_referencer::staff_space (rest); scale_drul (&pos, staff_space); -- 2.39.5