On Mon, 29 Mar 2010 08:48:35 -0700, Joe Neeman  wrote:
 
Keep in mind that a lyric line is the same as a staff to the
 > page-breaker. Don't your one-staffers have lyrics? If so, they are
 > really two-staffers and so the problem could still be in the
 > within-system estimation.
 
My one-staffers do have lyrics, but I have overwhelmingly convincing
proof the problem is the between-system estimation.  (Also, the
bug exhibits itself even when there are no lyrics, just music on
low ledgers -- the estimator does not know that they go below
the top point of the treble clef on the next line; and because these
are one-liners, the error is  very significant (30% of the page is
blank)).
 
I've already spent some time writing a patch, and it's almost ready.
The difficult problem is not in the estimator itself -- it's just simple
arithmetic -- but in intervalues crossing the libGuile FFI boundary,
there is a lot of places where the API we are traversing is generic,
and we don't know whether in this instance we are dealing with
a single Interval or with a (begin, rest) pair.
What I did was I generalized "Interval" to be augmentable with
a "rest-of-line" interval, but only if need be.  This is hacky in that
it touches the template parametrization in interval.hh:
 
typedef Interval_t<Real> Interval;
 
becomes:
 
typedef Interval_t<Real> IntervalBase;
 
and then the class used by everyone is derived from IntervalBase:
 
class Interval : public IntervalBase { ... }
 
I'll post the patch shortly.
 
Boris
 
 



_______________________________________________
bug-lilypond mailing list
[email protected]
http://lists.gnu.org/mailman/listinfo/bug-lilypond

Reply via email to