-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
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++)
{
stem_l_arr_p_ = 0;
delete grouping_p_;
grouping_p_ = 0;
+
shortest_mom_ = Moment (1, 8);
}
junk_beam ();
}
else
+
{
finished_beam_p_ = create_beam_p ();
if (finished_beam_p_)
delete stem_l_arr_p_;
stem_l_arr_p_ = 0;
grouping_p_ = 0;
- shortest_mom_ = Moment (1, 8);
}
+
+ shortest_mom_ = Moment (1, 8);
}
void
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))) ||
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;
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++)
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);
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;
}
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*);
virtual void stop_translation_timestep ();
virtual void start_translation_timestep ();
virtual void finalize ();
- virtual void create_grobs ();
private:
Span_req * new_req_l_;
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"));
start_measure_i_
= gh_scm2int (get_property ("currentBarNumber"));
}
+
+
}
void
{
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.
*/
}