+pl 30
+
+Features
+ - better multivoice spacing
+ - move rest in multivoice staff
+ - errors in TeX output now warnings
+ - progress indicator
+ - music processing speedup.
+Internal
+ - make spanner for staffsym; scrap Line_pstaff
+ - scrap simplestaff (Rhythmic_staff temporarily disabled)
+ - docxx 3.0 format comments
+ - split register source files
+ - hardcoded dimensions compile time
+ - Lookup::tex_hairpin
+Bugs
+ - non G-clef clefs
+ - script junking (2x)
+ - empty files
+ - beam::center (plet position!)
+
pl 29
- - multiplatform Makefile
- - context errors: bugfixes
+ - multiplatform Makefile (JN)
+ - context errors: bugfixes (JN)
pl 28
Doc
- Request_register
Bugfix
- - Script.cc : float exception
- - Request::Request(Request) copying of definition pointer
+ - Script.cc : float exception (MB)
+ - Request::Request(Request) copying of definition pointer (JN)
- cleaned dependencies for broken spanners
- stupid typo in Staff_elem::post_processing()
- init of hpos in PCol::PCol
Staff_column *
Staff::get_col(Moment w, bool mus)
{
- Score_column* sccol_l = score_l_->find_col(w,mus);
-
- iter_top(cols,i);
+ iter_top(cols,i);
for (; i.ok(); i++) {
-
- if (*i->score_column_l_ > *sccol_l) // too far
+ if (i->when() == w) {
+ if (i->musical_b() == mus) {
+ assert( score_l_->find_col(w,mus).ptr() == i->score_column_l_);
+ return i;
+ }
+ else if (!mus)
+ break;
+ } else if (i->when() > w)
break;
- if (sccol_l == i->score_column_l_)
- return i;
}
-
/* post: *sc > *->score_column_l_ || !i.ok() */
+
+ Score_column* sccol_l = score_l_->find_col(w,mus);
Staff_column* newst = create_col(sccol_l);
if (!i.ok()) {
if (mus) {
i.insert(newst);
+
return newst;
}
Staff::setup_staffcols()
{
for (iter_top(voices,i); i.ok(); i++) {
+
Moment now = i->start;
for (iter_top(i->elts,j); j.ok(); j++) {
-
- Staff_column *s_l=get_col(now,true);
+
+ Staff_column *s_l= get_col(now, true);
+ assert(now == s_l->when());
s_l->add(j);
now += j->duration;
}
-
}
+ OK();
set_time_descriptions();
}
+
+
void
Staff::set_time_descriptions()
{
i++;
for (; i.ok(); j++,i++) {
if ( j->when() == i->when())
- assert(!j->mus() && i->mus());
+ assert(!j->musical_b() && i->musical_b());
else
assert(j->when () < i->when() );
}