/*
ugh. -- fix staff-bar name?
- */
+ */
if (h && h->get_property ("break-align-symbol") == ly_symbol2scm ("staff-bar"))
return false;
}
/*
Either object can be non existent, if the score ends
prematurely.
- */
+ */
rns = ly_car (unsmob_grob (rns)->get_property ("right-items"));
c->set_property ("between-cols", scm_cons (lns,
- rns));
+ rns));
/*
Set distance constraints for loose columns
/*
update the left column.
- */
+ */
if (right_rank <= min_rank)
{
if (right_rank < min_rank)
/*
update the right column of the wish.
- */
+ */
int maxrank = 0;
SCM left_neighs = rc->get_property ("left-neighbors");
if (scm_is_pair (left_neighs)
/*
sloppy with typnig left/right-neighbors should take list, but paper-column found instead.
- */
+ */
SCM ln = cols[i] ->get_property ("left-neighbors");
if (!scm_is_pair (ln) && i )
{
/*
can't use get_system() ? --hwn.
- */
+ */
Link_array<Grob> all (me->pscore_->system_->columns ());
set_explicit_neighbor_columns (all);
{
/*
ascending in duration
- */
+ */
Array<Rational> durations;
Array<int> counts;
(different time sigs) than others, and should be spaced differently.
*/
void
-Spacing_spanner::do_measure (Rational global_shortest, Grob*me, Link_array<Grob> *cols)
+Spacing_spanner::do_measure (Rational global_shortest, Grob*me,
+ Link_array<Grob> *cols)
{
Real headwid = robust_scm2double (me->get_property ("spacing-increment"), 1);
breakable_column_spacing (me, l, rb, global_shortest);
if (lb && rb)
breakable_column_spacing (me, lb, rb, global_shortest);
-
- continue ;
}
-
-
- musical_column_spacing (me, lc, rc, headwid, global_shortest);
- if (Item *rb = r->find_prebroken_piece (LEFT))
- musical_column_spacing (me, lc, rb, headwid, global_shortest);
- }
+ else
+ {
+ musical_column_spacing (me, lc, rc, headwid, global_shortest);
+ if (Item *rb = r->find_prebroken_piece (LEFT))
+ musical_column_spacing (me, lc, rb, headwid, global_shortest);
+ }
+ }
}
-
/*
Generate the space between two musical columns LC and RC, given
spacing parameters INCR and SHORTEST.
virtual void start_translation_timestep ();
virtual void initialize ();
+ virtual void process_music();
virtual void stop_translation_timestep ();
public:
context ()->set_property ("whichBar", which);
}
+void
+Timing_engraver::process_music()
+{
+ Timing_translator::process_music ();
+
+ bool start_of_measure = (last_moment_.main_part_ != now_mom().main_part_
+ && !measure_position ().main_part_);
+
+ /*
+ We can't do this in start_translation_timestep(), since time sig
+ changes won't have happened by then.
+ */
+ if (start_of_measure)
+ {
+ Moment mlen = Moment (measure_length ());
+ unsmob_grob (get_property ("currentCommandColumn"))
+ ->set_property ("measure-length", mlen.smobbed_copy ());
+ }
+}
+
void
Timing_engraver::start_translation_timestep ()
bool start_of_measure = (last_moment_.main_part_ != now.main_part_
&& !mp.main_part_);
- if (start_of_measure)
- {
- Moment mlen = Moment (measure_length ());
- unsmob_grob (get_property ("currentCommandColumn"))
- ->set_property ("measure-length", mlen.smobbed_copy ());
- }
-
if (!scm_is_string (which) && to_boolean (automatic_bars))
{
SCM always = get_property ("barAlways");