Engraver_group_engraver and Performer_group_performer not
Engraver/Performer. Fixes crashes when doing \with { \consist .. }
+2005-08-18 Han-Wen Nienhuys <hanwen@xs4all.nl>
+
+ * lily/context-def.cc (instantiate): check for
+ Engraver_group_engraver and Performer_group_performer not
+ Engraver/Performer. Fixes crashes when doing \with { \consist .. }
+
2005-08-18 Jan Nieuwenhuizen <janneke@gnu.org>
* input/les-nereides.ly: Remove three fingering tweaks, update
2005-08-18 Jan Nieuwenhuizen <janneke@gnu.org>
* input/les-nereides.ly: Remove three fingering tweaks, update
2005-08-17 Han-Wen Nienhuys <hanwen@xs4all.nl>
2005-08-17 Han-Wen Nienhuys <hanwen@xs4all.nl>
+ * ly/engraver-init.ly (AncientRemoveEmptyStaffContext): set timing
+ to #t.
+
+ * lily/timing-translator.cc (initialize): don't initialize timing.
+
* input/regression/stem-spacing.ly (Module): remove file.
* input/regression/spacing-stick-out.ly: specify Score context for
* input/regression/stem-spacing.ly (Module): remove file.
* input/regression/spacing-stick-out.ly: specify Score context for
g->simple_trans_list_ = trans_list;
context->implementation_ = g;
g->simple_trans_list_ = trans_list;
context->implementation_ = g;
- if (dynamic_cast<Engraver *> (g))
+ if (dynamic_cast<Engraver_group_engraver *> (g))
g->simple_trans_list_ = filter_performers (g->simple_trans_list_);
g->simple_trans_list_ = filter_performers (g->simple_trans_list_);
- else if (dynamic_cast<Performer *> (g))
+ else if (dynamic_cast<Performer_group_performer *> (g))
g->simple_trans_list_ = filter_engravers (g->simple_trans_list_);
g->context_ = context;
g->simple_trans_list_ = filter_engravers (g->simple_trans_list_);
g->context_ = context;
#include "translator.icc"
ADD_TRANSLATOR (Default_bar_line_engraver,
#include "translator.icc"
ADD_TRANSLATOR (Default_bar_line_engraver,
- "This engraver determines what kind of automatic bar lines should be produced, "
- "and sets @code{whichBar} accordingly. It should be at the same "
+ "This engraver determines what kind of automatic bar "
+ "lines should be produced, "
+ "and sets @code{whichBar} "
+ "accordingly. It should be at the same "
"level as @ref{Timing_translator}. ",
"level as @ref{Timing_translator}. ",
/* create */ "",
/* accept */ "",
/* create */ "",
/* accept */ "",
- "measurePosition automaticBars whichBar barAlways defaultBarType "
- "measureLength",
+ "automaticBars "
+ "barAlways "
+ "defaultBarType "
+ "measureLength "
+ "whichBar "
+ "measurePosition ",
+
/* write */ "automaticBars");
Default_bar_line_engraver::Default_bar_line_engraver ()
/* write */ "automaticBars");
Default_bar_line_engraver::Default_bar_line_engraver ()
Repeat_sign_type repeat_sign_type_;
Item *double_percent_;
Repeat_sign_type repeat_sign_type_;
Item *double_percent_;
- Item *double_percent_counter_;
+ Item *double_percent_counter_;
+
Spanner *percent_;
Spanner *percent_counter_;
Spanner *finished_percent_;
Spanner *percent_;
Spanner *percent_counter_;
Spanner *finished_percent_;
Moment now = now_mom ();
start_mom_ = now;
stop_mom_ = start_mom_ + Moment (total_count_) * body_length_;
Moment now = now_mom ();
start_mom_ = now;
stop_mom_ = start_mom_ + Moment (total_count_) * body_length_;
- next_moment_ = start_mom_ + body_length_;
+ next_moment_ = start_mom_;
+ next_moment_ += body_length_;
- Moment meas_len (robust_scm2moment (get_property ("measureLength"), Moment (1)));
+ Moment meas_len (robust_scm2moment (get_property ("measureLength"),
+ Moment (1)));
+
if (meas_len == body_length_)
repeat_sign_type_ = MEASURE;
else if (Moment (2) * meas_len == body_length_)
if (meas_len == body_length_)
repeat_sign_type_ = MEASURE;
else if (Moment (2) * meas_len == body_length_)
Bezier b = slur_shape (width, h_inf, r_0);
/*
Bezier b = slur_shape (width, h_inf, r_0);
/*
- I think this better, particularly for small ties. It always allows the user to move ties if
- they seem in the wrong place
+ I think this better, particularly for small ties. It always allows
+ the user to move ties if they seem in the wrong place
TODO: what if 2 heads have different size.
TODO: what if 2 heads have different size.
{
Global_context *global = get_global_context ();
{
Global_context *global = get_global_context ();
- /* allbars == ! skipbars */
- SCM sb = get_property ("skipBars");
- bool allbars = !to_boolean (sb);
-
- // urg: multi bar rests: should always process whole of first bar?
- SCM tim = get_property ("timing");
- bool timb = to_boolean (tim);
- if (timb && allbars)
+ if (to_boolean (get_property ("timing"))
+ && !to_boolean (get_property ("skipBars")))
{
Moment barleft = (measure_length () - measure_position (context ()));
Moment now = now_mom ();
{
Moment barleft = (measure_length () - measure_position (context ()));
Moment now = now_mom ();
void
Timing_translator::initialize ()
{
void
Timing_translator::initialize ()
{
-
- /*
- move this to engraver-init.ly?
- */
context ()->add_alias (ly_symbol2scm ("Timing"));
context ()->add_alias (ly_symbol2scm ("Timing"));
- context ()->set_property ("timing", SCM_BOOL_T);
context ()->set_property ("currentBarNumber", scm_from_int (1));
context ()->set_property ("timeSignatureFraction",
context ()->set_property ("currentBarNumber", scm_from_int (1));
context ()->set_property ("timeSignatureFraction",
Do not init measurePosition; this should be done from global
context.
*/
Do not init measurePosition; this should be done from global
context.
*/
- context ()->set_property ("measureLength", Moment (Rational (1)).smobbed_copy ());
- context ()->set_property ("beatLength", Moment (Rational (1, 4)).smobbed_copy ());
+ context ()->set_property ("measureLength",
+ Moment (Rational (1)).smobbed_copy ());
+ context ()->set_property ("beatLength",
+ Moment (Rational (1, 4)).smobbed_copy ());
instrumentTransposition = #(ly:make-pitch 0 0 0)
verticallySpacedContexts = #'(Staff)
instrumentTransposition = #(ly:make-pitch 0 0 0)
verticallySpacedContexts = #'(Staff)