lilypond-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Bad positioning of tuplet numbers on kneed beams with Beam.positions ove


From: david . nalesnik
Subject: Bad positioning of tuplet numbers on kneed beams with Beam.positions override. (issue 81330046)
Date: Sat, 29 Mar 2014 14:36:49 +0000

Reviewers: ,

Message:
Please review.  Thanks!

Description:
Bad positioning of tuplet numbers on kneed beams with Beam.positions
override.

Previously, when Beam.positions was overridden, tuplet numbers on kneed
beams
would automatically be placed according to the bracket instead of
against
the beam.  This happened because the check for whether the beam was
kneed
or not returned false in such cases.  This patch replaces that check.

It also:

--adds a regtest demonstrating behavior with Beam.position overrides
--removes some redundant code

Please review this at https://codereview.appspot.com/81330046/

Affected files (+41, -5 lines):
  A input/regression/tuplet-number-kneed-beam-positions.ly
  M lily/tuplet-number.cc


Index: input/regression/tuplet-number-kneed-beam-positions.ly
diff --git a/input/regression/tuplet-number-kneed-beam-positions.ly b/input/regression/tuplet-number-kneed-beam-positions.ly
new file mode 100644
index 0000000000000000000000000000000000000000..3618ed21e94e570c7028a969f513f11dd0c38f42
--- /dev/null
+++ b/input/regression/tuplet-number-kneed-beam-positions.ly
@@ -0,0 +1,39 @@
+\version "2.19.4"
+
+\header {
+  texidoc = "Tuplet numbers are placed next to kneed beams when
address@hidden is overridden."
+}
+
+\layout {
+  indent = 0
+  ragged-right = ##t
+}
+
+top = \change Staff = "1"
+bottom = \change Staff = "2"
+
+music = \relative c {
+  \override Beam.auto-knee-gap = 1
+  \tuplet 3/2 4 {
+    c8 \top e'' \bottom g,,
+    \once \override Beam.positions = #'(4.5 . 4.5)
+    c,8 \top e'' \bottom g,,
+    \once \override Beam.positions = #'(-7.0 . -7.0)
+    \top e''8 \bottom c,, c,
+    \once \override Beam.positions = #'(-4.5 . -4.5)
+    \top e'''8 \bottom c,, c,
+  }
+}
+
+\score {
+  \new PianoStaff <<
+    \new Staff = "1" {
+      s1
+    }
+    \new Staff = "2" {
+      \clef bass
+      \music
+    }
+  >>
+}
Index: lily/tuplet-number.cc
diff --git a/lily/tuplet-number.cc b/lily/tuplet-number.cc
index ad27ac958c910b91e4e307616fc0ce6c52b681b6..9d4ce784b1803460ada4749d9bd232cb38aec69f 100644
--- a/lily/tuplet-number.cc
+++ b/lily/tuplet-number.cc
@@ -166,7 +166,7 @@ Tuplet_number::knee_position_against_beam (Grob *me_grob, Grob *ref_stem)

   Grob *beam = Stem::get_beam (ref_stem);

-  if (!beam || !to_boolean (beam->get_property ("knee")))
+  if (!beam || !Beam::is_knee (beam))
     return false;

   Grob *commonx = Tuplet_bracket::get_common_x (tuplet);
@@ -362,10 +362,6 @@ Tuplet_number::calc_y_offset (SCM smob)
   if (!ref_stem || !knee_position_against_beam (me, ref_stem))
     return to_bracket;

-  Grob *beam = Stem::get_beam (ref_stem);
-  if (!beam || !to_boolean (beam->get_property ("knee")))
-    return to_bracket;
-
   /*
     First, we calculate the Y-offset of the tuplet number as if it
     is positioned at the reference stem.
@@ -388,6 +384,7 @@ Tuplet_number::calc_y_offset (SCM smob)
   */
   if (to_boolean (ref_stem->get_property ("french-beaming")))
     {
+      Grob *beam = Stem::get_beam (ref_stem);
       Real beam_translation = Beam::get_beam_translation (beam);
       SCM beaming = ref_stem->get_property ("beaming");
       y_offset += ref_stem_dir





reply via email to

[Prev in Thread] Current Thread [Next in Thread]