From: fred Date: Wed, 27 Mar 2002 00:59:12 +0000 (+0000) Subject: lilypond-1.3.143 X-Git-Tag: release/1.5.59~822 X-Git-Url: https://git.donarmstrong.com/?a=commitdiff_plain;h=30efc610a19b98d7535b63ec30fb1ff019127302;p=lilypond.git lilypond-1.3.143 --- diff --git a/CHANGES b/CHANGES index 1365620208..242f08f6d7 100644 --- 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 diff --git a/lily/auto-beam-engraver.cc b/lily/auto-beam-engraver.cc index 6f0f0e1dab..b3353789cd 100644 --- a/lily/auto-beam-engraver.cc +++ b/lily/auto-beam-engraver.cc @@ -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 diff --git a/lily/beam.cc b/lily/beam.cc index 2e0615baf4..901d56ab21 100644 --- a/lily/beam.cc +++ b/lily/beam.cc @@ -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 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); diff --git a/lily/grace-engraver-group.cc b/lily/grace-engraver-group.cc index fd60e0de66..72c1ebdcc6 100644 --- a/lily/grace-engraver-group.cc +++ b/lily/grace-engraver-group.cc @@ -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; } diff --git a/lily/include/beam.hh b/lily/include/beam.hh index 082ceb630e..36ad55aec7 100644 --- a/lily/include/beam.hh +++ b/lily/include/beam.hh @@ -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*); diff --git a/lily/multi-measure-rest-engraver.cc b/lily/multi-measure-rest-engraver.cc index 9720596664..0a0ec83780 100644 --- a/lily/multi-measure-rest-engraver.cc +++ b/lily/multi-measure-rest-engraver.cc @@ -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. */ }