[Top][All Lists]
[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