]> git.donarmstrong.com Git - lilypond.git/commitdiff
lilypond-1.3.143
authorfred <fred>
Wed, 27 Mar 2002 00:59:12 +0000 (00:59 +0000)
committerfred <fred>
Wed, 27 Mar 2002 00:59:12 +0000 (00:59 +0000)
CHANGES
lily/auto-beam-engraver.cc
lily/beam.cc
lily/grace-engraver-group.cc
lily/include/beam.hh
lily/multi-measure-rest-engraver.cc

diff --git a/CHANGES b/CHANGES
index 136562020896d35c31d672326a8ecf017a8565e7..242f08f6d7c549554e97d7552cf6f2a7fd0a9f45 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -1,6 +1,28 @@
-1.3.141.jcn3
+1.3.142.hwn2
 ============
 
+* Glossary bugfixes for lilypond code.
+
+* Bugfix: don't crash if dy or y not set.
+
+* Doco updates: moved contents of tricks chapter to input/tricks,
+inserted lilypond-book tutorial, added polyphony section.
+
+* Score.skipTypesetting skips over already or not yet corrected music, thus
+speeding up running times and score debugging. (Includes bugfix relative to
+patch submitted to list.)
+
+1.3.142.jcn1
+============
+
+* Mup2ly preprocesses and extracts all plain notes.
+
+* Bugfix: patch in $(outdir)
+
+
+1.3.142
+=======
+
 * some mup2ly progress.
 
 * Bugfix: ly2dvi: don't include empty set fo latexheaders, don't use
index 6f0f0e1dabc09d9cfae40d78d90a1488c69e203d..b3353789cd1faa855872f799c5ec9e7b139a6bd8 100644 (file)
@@ -218,6 +218,11 @@ Auto_beam_engraver::consider_end (Moment test_mom)
 Spanner*
 Auto_beam_engraver::create_beam_p ()
 {
+  if (to_boolean (get_property ("skipTypesetting")))
+    {
+     return 0;
+    }
+  
   Spanner* beam_p = new Spanner (get_property ("Beam"));
   for (int i = 0; i < stem_l_arr_p_->size (); i++)
     {
@@ -258,6 +263,7 @@ Auto_beam_engraver::junk_beam ()
   stem_l_arr_p_ = 0;
   delete grouping_p_;
   grouping_p_ = 0;
+
   shortest_mom_ = Moment (1, 8);
 }
 
@@ -269,6 +275,7 @@ Auto_beam_engraver::end_beam ()
       junk_beam ();
     }
   else
+    
     {
       finished_beam_p_ = create_beam_p ();
       if (finished_beam_p_)
@@ -276,8 +283,9 @@ Auto_beam_engraver::end_beam ()
       delete stem_l_arr_p_;
       stem_l_arr_p_ = 0;
       grouping_p_ = 0;
-      shortest_mom_ = Moment (1, 8);
     }
+
+  shortest_mom_ = Moment (1, 8);
 }
 
 void
index 2e0615baf4610425567523f377406af946f0f50c..901d56ab21bbb24f1e04b63c9745dbeacdf84ed8 100644 (file)
@@ -751,7 +751,9 @@ Beam::set_beaming (Grob*me,Beaming_info_list *beaming)
   FIXME: clean me up.
   */
 Molecule
-Beam::stem_beams (Grob*me,Item *here, Item *next, Item *prev) 
+Beam::stem_beams (Grob*me,Item *here, Item *next, Item *prev,
+                 Real dy, Real dydx
+                 ) 
 {
   // ugh -> use commonx
   if ((next && ! (next->relative_coordinate (0, X_AXIS) > here->relative_coordinate (0, X_AXIS))) ||
@@ -774,8 +776,6 @@ Beam::stem_beams (Grob*me,Item *here, Item *next, Item *prev)
   Real dx = visible_stem_count (me) ?
     last_visible_stem (me)->relative_coordinate (0, X_AXIS) - first_visible_stem (me)->relative_coordinate (0, X_AXIS)
     : 0.0;
-  Real dy = gh_scm2double (me->get_grob_property ("dy"));
-  Real dydx = dy && dx ? dy/dx : 0;
 
   Molecule leftbeams;
   Molecule rightbeams;
@@ -898,10 +898,18 @@ Beam::brew_molecule (SCM smob)
       dx = stems.top ()->relative_coordinate (0, X_AXIS) - x0;
     }
   
+
+
+  /*
+    TODO: the naming of the grob properties sucks.
+   */
+  SCM dy_s = me->get_grob_property ("dy");
+  SCM y_s = me->get_grob_property ("y");
+
   
-  Real dy = gh_scm2double (me->get_grob_property ("dy"));
+  Real dy = gh_number_p (dy_s) ? gh_scm2double (dy_s) : 0.0;
   Real dydx = dy && dx ? dy/dx : 0;
-  Real y = gh_scm2double (me->get_grob_property ("y"));
+  Real y = gh_number_p (y_s) ? gh_scm2double (y_s) : 0.0;
 
 
   for (int j=0; j <stems.size (); j++)
@@ -910,7 +918,7 @@ Beam::brew_molecule (SCM smob)
       Item * prev = (j > 0)? stems[j-1] : 0;
       Item * next = (j < stems.size ()-1) ? stems[j+1] :0;
 
-      Molecule sb = stem_beams (me, i, next, prev);
+      Molecule sb = stem_beams (me, i, next, prev, dy, dydx);
       Real x = i->relative_coordinate (0, X_AXIS)-x0;
       sb.translate (Offset (x, x * dydx + y));
       mol.add_molecule (sb);
index fd60e0de66c3b44de5cbbd05834b550a87aad674..72c1ebdcc6d3e81e62869849844c82e420253c8d 100644 (file)
@@ -69,9 +69,13 @@ void
 Grace_engraver_group::one_time_step ()
 {
   calling_self_b_  = true;
-  process_music ();
-  announces ();
-  pre_move_processing ();
+
+  if (!to_boolean (get_property (ly_symbol2scm ("skipTypesetting"))))
+    {
+      process_music ();
+      announces ();
+    }
+  stop_translation_timestep ();
   check_removal ();
   calling_self_b_ = false;
 }
index 082ceb630e48244f4c5c5b656217c47a4be9c72f..36ad55aec706a11d46f3d4ac9323dc917c5511a4 100644 (file)
@@ -39,7 +39,7 @@ public:
   DECLARE_SCHEME_CALLBACK (user_override, (SCM));
   DECLARE_SCHEME_CALLBACK (do_quantise_y, (SCM));
 
-  static Molecule stem_beams (Grob*,Item *here, Item *next, Item *prev);
+  static Molecule stem_beams (Grob*,Item *here, Item *next, Item *prev, Real, Real);
 
 private:
   static Direction get_default_dir (Grob*);
index 9720596664caa40c5b69bea10c17a21161d571f9..0a0ec83780d920ce1a018ad66c13333bd53e7fb1 100644 (file)
@@ -35,7 +35,6 @@ protected:
   virtual void stop_translation_timestep ();
   virtual void start_translation_timestep ();
   virtual void finalize ();
-  virtual void create_grobs ();
 
 private:
   Span_req * new_req_l_;
@@ -114,12 +113,6 @@ Multi_measure_rest_engraver::process_music ()
       new_req_l_ =0;
     }
 
-}
-
-void
-Multi_measure_rest_engraver::create_grobs ()
-{
-
   if (busy_span_req_l_ && !mmrest_p_)
     {
       mmrest_p_ = new Spanner (get_property ("MultiMeasureRest"));
@@ -131,6 +124,8 @@ Multi_measure_rest_engraver::create_grobs ()
       start_measure_i_
        = gh_scm2int (get_property ("currentBarNumber"));
     }
+
+
 }
 
 void
@@ -145,7 +140,8 @@ Multi_measure_rest_engraver::stop_translation_timestep ()
     {
       typeset_grob (mmrest_p_);
       /*
-       we must keep mmrest_p_ around to set measure-count.
+       we must keep mmrest_p_ around to set measure-count, so
+       no mmrest_p_ = 0 here. 
        */
     }