#include "item.hh"
#include "p-col.hh"
#include "request-column.hh"
+#include "grouping.hh"
void
Staff_column::OK() const
{
return req_col_l_->musical_column_l_;
}
+
+void
+Staff_column::update_time(Time_description &time_,
+ Rhythmic_grouping *default_grouping)
+{
+ // first all meter changes
+ for (int i=0; i < timing_req_l_arr_.size(); i++) {
+ Timing_req * tr_l = timing_req_l_arr_[i];
+ if (tr_l->meterchange()) {
+ int b_i=tr_l->meterchange()->beats_i_;
+ int o_i = tr_l->meterchange()->one_beat_i_;
+ if (! time_.allow_meter_change_b() )
+ tr_l->warning("Meter change not allowed here");
+ else{
+ time_.set_meter(b_i, o_i);
+ if (default_grouping)
+ *default_grouping =
+ Rhythmic_grouping(MInterval(0,Moment(b_i, o_i)), b_i);
+ }
+ }
+ }
+
+ // then do the rest
+ for (int i=0; i < timing_req_l_arr_.size(); i++) {
+ Timing_req * tr_l = timing_req_l_arr_[i];
+ if (tr_l->partial()) {
+ Moment m = tr_l->partial()->duration_;
+ String error = time_.try_set_partial_str(m);
+ if (error != "") {
+ tr_l->warning(error);
+ } else
+ time_.setpartial(m);
+ } else if (tr_l->barcheck() && time_.whole_in_measure_) {
+ tr_l ->warning( "Barcheck failed");
+
+ time_.whole_in_measure_ = 0; // resync
+ time_.error_b_ = true;
+ } else if (tr_l->cadenza()) {
+ time_.set_cadenza(tr_l->cadenza()->on_b_);
+ } else if (tr_l->measuregrouping()) {
+ if (default_grouping)
+ *default_grouping = parse_grouping(
+ tr_l->measuregrouping()->beat_i_arr_,
+ tr_l->measuregrouping()->elt_length_arr_);
+ }
+ }
+ time_.OK();
+}
+
Begin3
Title: LilyPond
-Version: 0.0.63
-Entered-date: 05/15/97
+Version: 0.0.64
+Entered-date: 05/16/97
Description: LilyPond is a program which converts a music-script (mudela) into
TeX output, or MIDI to produce multi-staff scores. Features include multiple
meters, clefs, keys, lyrics, versatile input-language, cadenzas
jan@digicash.com (Jan Nieuwenhuizen)
Maintained-by: hanwen@stack.nl (Han-Wen Nienhuys)
Primary-site: pcnov095.win.tue.nl /pub/lilypond/
- 300k lilypond-0.0.63.tar.gz
+ 300k lilypond-0.0.64.tar.gz
Alternate-site:
Original-site:
Platform: unix/win32, GNU C++
Name: lilypond
-Version: 0.0.63
+Version: 0.0.64
Release: 1
Copyright: GPL
Group: Applications/Publishing
-Source0: pcnov095.win.tue.nl:/pub/lilypond/lilypond-0.0.63.tar.gz
+Source0: pcnov095.win.tue.nl:/pub/lilypond/lilypond-0.0.64.tar.gz
Summary: A preprocessor to make TeX typeset music.
URL: http://www.stack.nl/~hanwen/lilypond
Packager: Han-Wen Nienhuys <hanwen@stack.nl>