daddy_trans_l_->set_property("measurePosition",
(new Moment)->smobify_self ());
-
}
}
}
-
-
}
// urg: multi bar rests: should always process whole of first bar?
SCM tim = get_property ("timing", 0);
- bool timb = gh_boolean_p (tim) && gh_scm2bool ( tim);
-
-
+ bool timb = to_boolean (tim);
if (timb && allbars)
{
Moment barleft = (measure_length () - measure_position ());
- if (barleft < Moment (0))
- barleft = 0;
-
- global_l->add_moment_to_process (now_mom () + barleft);
+ if (barleft > Moment (0))
+ global_l->add_moment_to_process (now_mom () + barleft);
}
}
daddy_trans_l_->set_property ("currentBarNumber" , gh_int2scm (1));
daddy_trans_l_->set_property("measurePosition",
(new Moment)->smobify_self());
+ daddy_trans_l_->set_property ("oneBeat",
+ (new Moment (1,4))->smobify_self ());
daddy_trans_l_->set_property("measureLength",
(new Moment (1))->smobify_self());
-
}
Moment
void
Timing_translator::get_time_signature (int *n, int *d) const
{
- *n = measure_length () / one_beat_;
- *d = one_beat_.den_i ();
+ Moment one_beat (1,4);
+ SCM one = get_property ("beatLength",0);
+ if (SMOB_IS_TYPE_B (Moment, one))
+ one_beat = *SMOB_TO_TYPE (Moment, one);
+ *n = measure_length () / one_beat;
+ *d = one_beat.den_i ();
}
void
Timing_translator::set_time_signature (int l, int o)
{
- one_beat_ = Moment (1)/Moment (o);
- Moment len = Moment (l) * one_beat_;
+ Moment one_beat = Moment (1)/Moment (o);
+ Moment len = Moment (l) * one_beat;
daddy_trans_l_->set_property ("measureLength",
(new Moment (len))->smobify_self ());
+ daddy_trans_l_->set_property ("beatength",
+ (new Moment (one_beat))->smobify_self ());
}
Timing_translator::Timing_translator()
{
- one_beat_ = Moment( 1,4);
}
}
SCM cad = get_property ("timing", 0);
- bool c= gh_boolean_p (cad ) && gh_scm2bool (cad);
+ bool c= to_boolean (cad );
Moment len = measure_length ();
while (c && *measposp >= len)
tr->set_property ("currentBarNumber", gh_int2scm (b));
}
-
-
-int
-Timing_translator::bars_i () const
-{
- return gh_scm2int (get_property ("currentBarNumber", 0));
-}