bug-lilypond
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Barcheck warnings


From: Erik Sandberg
Subject: Re: Barcheck warnings
Date: Wed, 14 Jan 2004 14:04:56 +0100
User-agent: KMail/1.5.4

On Friday 09 January 2004 01.47, Han-Wen Nienhuys wrote:
> address@hidden writes:
> > One rule could be to not print the "barcheck failure at a/b" warning in a
> > bar, if a "barcheck failure at a/b" with the same a and b occured on the
> > last | of the same staff. But probably there also exist even more clever
> > mechanisms.
>
> Your proposal seems clever enough. I've added this, but you have to
> set barCheckSynchronize to #f for it to work.

Thanks a lot! This new barcheck is just great. It's now harder than I expected 
to fool it into doing O(n) warnings (and I'm not sure it uses exactly my 
suggestion, but anyways it seems to work even better than it would :) ).

I found some barcheck related issues:
(i). A further improvement (and simplification?) of the barcheck mechanism: 
Whenever a barcheck fails, \skip the rest of the bar in the context where the 
barcheck appeared, give a warning, and then continue as if nothing happened 
(i.e. don't use the memory thing introduced in 2.1.9).

The point is that we won't just get rid of the O(n) warnings, but also, if the 
error was that the previous bar was too short (which probably is the case in 
about 50% of the cases), the staves (or contexts) will be synchronised again.  
(and if not, the rest of the staff will be off by a whole bar, which is more 
proofreadable than being off by half a bar).

(ii). This system would not work well for lyrics using \addlyrics, so these 
could continue using the new system from 2.1.9 instead. (perhaps add a 
\barCheckPadding property, defaulted to #t, that toggles between (i) and 
2.1.9 behaviour. then \addlyrics could automatically \override it to #f for 
its lyrics argument)

(iii). While speaking \addlyrics and barchecks: The following example gives a 
warning for thte "foo | baz" barcheck:

\addlyrics \notes {a1 | r4 a4 } \context Lyrics \lyrics { foo | baz }

Thus, the meaning of the barcheck in { foo | baz } in \addlyrics is that baz 
is attached to a note in the very beginning of the measure.
It would feel more logical if \addlyrics would handle | so that a barcheck 
between two syllables "foo" and "baz" would mean that the note foo is 
attached to, ends before the beginning of the measure that "baz" starts in.
I.e., whenever \addlyrics inserts a \skip between foo and bar, it would 
attempt to place | in the nicest possible position inside the \skip.

This would make the following work fine:
\addlyrics \notes {a2 r2 | r2 a2 } \context Lyrics \lyrics { foo | baz }

Erik





reply via email to

[Prev in Thread] Current Thread [Next in Thread]