]> git.donarmstrong.com Git - lilypond.git/commitdiff
lilypond-1.3.128
authorfred <fred>
Wed, 27 Mar 2002 00:48:45 +0000 (00:48 +0000)
committerfred <fred>
Wed, 27 Mar 2002 00:48:45 +0000 (00:48 +0000)
input/bugs/beamed-chord.ly [new file with mode: 0644]
lily/include/beam.hh
lily/stem-tremolo.cc
scm/grob-description.scm

diff --git a/input/bugs/beamed-chord.ly b/input/bugs/beamed-chord.ly
new file mode 100644 (file)
index 0000000..c274b48
--- /dev/null
@@ -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 <d ( bes > ) bes' d <e-> g, c, c,> r |
+  }
+}
index 18126770aff1a6523ef5a2e89317a1f42ffe0223..c1eb843b1a261a9703600b7ef50d289bccc16ec0 100644 (file)
@@ -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*);
 };
index 36cbc63f97f4cbb6eea3eeb1f3838b462ae101c7..5ff2b8f2a52ffff5e5d9ec0af16f8140bb14b01b 100644 (file)
@@ -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)
index 47ee15416f3cec19545277210cdcf70e99de0a06..df810a004842e80041588d9c184598205f2cdf70 100644 (file)
                 ;; 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)