I'm currently trying to understand what exactly is the cause of bugs #1259 and #1433: http://code.google.com/p/lilypond/issues/detail?id=1259 http://code.google.com/p/lilypond/issues/detail?id=1433
Actually, both are symptoms of the same problem: Both set early_end_ in the dynamic-align-engraver.cc, so that the DynamicLineSpanner is bounded after the current/next moment. This works fine as long as the whole spanner is in one line. As soon as there is a line break during the spanner's (pre-truncating) lifetime, the error message appears. It actually indicates that the DynamicTextSpanner (or the Hairpin) is longer than its parent DynamicLineSpanner. These error checks are in Spanner::do_break_processing, which is only called for breaks, so the error is printed only at line breaks. What do you think would be the correct solution? I notice that when I simply comment out in lily/spanner.cc the lines: -) continue; (line 120) -) span->suicide(); (line 133) then the output looks just as expected (of course, I get the warnings/errors). However, I suppose these checks are there for a reason, so simply removing them would probably cause other problems... Or would the correct solution be to set the bound not only for the line spanner when truncating it in Dynamic_align_engraver::stop_translation_timestep, but also to set the same bound for all child spanners? I have tried this code instead of line_set_bound(d,bound), but that does not change a thing: line_->set_bound (d, bound); set<Spanner *>::iterator it; for ( it=running_.begin() ; it != running_.end(); it++ ) { (*it)->set_bound (d, bound); } line_->set_bound (d, bound); Is this the completely wrong approach or why are the child spanners still not contained in the parent DynamicLineSpanner? Any idea how to properly fix the problem? Thanks, Reinhold Am Donnerstag, 2. Dezember 2010, 19:17:10 schrieb Reinhold Kainhofer: > The regtest input/regression/dynamics-alignment-breaker.ly for > \breakDynamicSpan works fine, but as soon as there are line breaks during a > dynamic spanner, it breaks with error messages: > > Programmierfehler: Spanner `Hairpin' is not fully contained in parent > spanner. Ignoring orphaned part > Programmierfehler: bounds of spanner are invalid -- ------------------------------------------------------------------ Reinhold Kainhofer, reinh...@kainhofer.com, http://reinhold.kainhofer.com/ * Financial & Actuarial Math., Vienna Univ. of Technology, Austria * http://www.fam.tuwien.ac.at/, DVR: 0005886 * LilyPond, Music typesetting, http://www.lilypond.org _______________________________________________ lilypond-devel mailing list lilypond-devel@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-devel