From 2aefea5393f973b44b9d1b75ed32d6922fc2b74e Mon Sep 17 00:00:00 2001 From: fred Date: Wed, 27 Mar 2002 00:48:45 +0000 Subject: [PATCH] lilypond-1.3.128 --- input/bugs/beamed-chord.ly | 12 ++++++++++++ lily/include/beam.hh | 17 ++++++++++++----- lily/stem-tremolo.cc | 2 +- scm/grob-description.scm | 7 +++++++ 4 files changed, 32 insertions(+), 6 deletions(-) create mode 100644 input/bugs/beamed-chord.ly diff --git a/input/bugs/beamed-chord.ly b/input/bugs/beamed-chord.ly new file mode 100644 index 0000000000..c274b48a40 --- /dev/null +++ b/input/bugs/beamed-chord.ly @@ -0,0 +1,12 @@ +\header{ +texidoc="Beam thinks that first two notes should be stem down. Can be fixed by uncommenting \stemUp"; +} + +\score{ + \notes\relative c'{ + %\stemUp + \clef alto; + \time 3/4; + r8 ) bes' d g, c, c,> r | + } +} diff --git a/lily/include/beam.hh b/lily/include/beam.hh index 18126770af..c1eb843b1a 100644 --- a/lily/include/beam.hh +++ b/lily/include/beam.hh @@ -29,6 +29,17 @@ public: DECLARE_SCHEME_CALLBACK(brew_molecule, (SCM )); DECLARE_SCHEME_CALLBACK(before_line_breaking, (SCM )); DECLARE_SCHEME_CALLBACK(after_line_breaking, (SCM )); + + /* + y-dy callbacks + */ + DECLARE_SCHEME_CALLBACK (least_squares, (SCM)); + DECLARE_SCHEME_CALLBACK (cancel_suspect_slope, (SCM)); + DECLARE_SCHEME_CALLBACK (slope_damping, (SCM)); + DECLARE_SCHEME_CALLBACK (quantise_dy, (SCM)); + DECLARE_SCHEME_CALLBACK (user_override, (SCM)); + DECLARE_SCHEME_CALLBACK (do_quantise_y, (SCM)); + static Molecule stem_beams (Grob*,Item *here, Item *next, Item *prev); private: @@ -36,13 +47,9 @@ private: static void set_stem_directions (Grob*); static void consider_auto_knees (Grob*); static void set_stem_shorten (Grob*); - static void calc_default_position_and_height (Grob*,Real* y, Real* dy); - static bool suspect_slope_b (Grob*, Real y, Real dy); - static Real calc_slope_damping_f (Grob*, Real dy); static Real calc_stem_y_f (Grob*, Item* s, Real y, Real dy); static Real check_stem_length_f (Grob*, Real y, Real dy); - static void set_stem_length (Grob*, Real y, Real dy); - static Real quantise_dy_f (Grob*, Real dy); + static void set_stem_lengths (Grob*); static Real quantise_y_f (Grob*, Real y, Real dy, int quant_dir); static int forced_stem_count (Grob*); }; diff --git a/lily/stem-tremolo.cc b/lily/stem-tremolo.cc index 36cbc63f97..5ff2b8f2a5 100644 --- a/lily/stem-tremolo.cc +++ b/lily/stem-tremolo.cc @@ -76,7 +76,7 @@ Stem_tremolo::brew_molecule (SCM smob) if (beam) { Real dy = 0; - SCM s = beam->get_grob_property ("height"); + SCM s = beam->get_grob_property ("dy"); if (gh_number_p (s)) dy = gh_scm2double (s); Real dx = Beam::last_visible_stem (beam)->relative_coordinate (0, X_AXIS) diff --git a/scm/grob-description.scm b/scm/grob-description.scm index 47ee15416f..df810a0048 100644 --- a/scm/grob-description.scm +++ b/scm/grob-description.scm @@ -57,6 +57,13 @@ ;; todo: clean this up a bit: the list is getting ;; rather long. (molecule-callback . ,Beam::brew_molecule) + (y-dy-callbacks . (,Beam::least_squares + ,Beam::cancel_suspect_slope + ,Beam::slope_damping + ,Beam::quantise_dy + ,Beam::user_override + ,Beam::do_quantise_y)) + (thickness . 0.48) ; in staff-space (before-line-breaking-callback . ,Beam::before_line_breaking) (after-line-breaking-callback . ,Beam::after_line_breaking) -- 2.39.5