lilypond-devel
[Top][All Lists]
Advanced

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

Re: Accidentals Patch 1.5.24


From: Rune Zedeler
Subject: Re: Accidentals Patch 1.5.24
Date: Wed, 05 Dec 2001 15:21:06 +0100

Den 05-Dec-01 skrev Han-Wen Nienhuys:

HN> As I said earlier, I would like to remove the broken tie-thing, as it
HN> is hairy and be difficult to support properly. If we do remove it, we
HN> must however have a mechanism to get the same result.

I'll leave it until the \break command works again.
Then we must take a look.
I am pretty sure that when it is first out, it'll never be back in, so we have
to be REALLY sure that there's nothing we can do.
It is a big problem to leave it to the user to get the broken-tie-accidentals
right. Just think about stuff like supporting both a4 and letter, like
extracting individual parts, like typesetting the score in a smaller font...
Every time you do things like this you would virtually have to look at each
and every line of the output to manually see whether the music looked right -
and then manually change your .ly. Actually you would have to create
different notes-declarations for the individual parts and for the entire
score (because the line breaking would be different).
I DON'T like the idea of removing it... But nor can I see a solution to the
problem. :-(

Please folks out there, comment on this!

HN> One other idea I had (not sure if it's feasible). Instead of a boolean
HN> oneMeasureLazy setting (btw. the name should include accidentals or
HN> somesuch to contrast it with possible other lazyness switches),

Of course, silly me.
I'll rename it to oneMeasureLazyTimeSig (anybody having a better name?).

HN> could
HN> we have a accidentalLazyness property which is a number (the number of
HN> measures to remember an accidental),

That would be difficult. The way i do the one measure lazyness implementation
is that I at every barline do

lazysig = localsig ; localsig = timesig ;

Implementing a 3 measure lazyness would then be

lazysig = tempsig2 ; tempsig2 = tempsig1 ; tempsig1 = localsig ; localsig =
timesig ;

Which is ugly. Doing an arbitrary lazyness would require an entire array of
signatures... Or alternatively that all entries in the signature remember how
old they are - which would require quite a lot of code and not really giving
much new flexibility.
Of course, the good think about this would be that it would be enough with one
local key-signature instead of two.

I think that the entire lazyness thing is strange (I will usually run with
onemeasure = #f - or infinite lazyness) - and the only reason I implemented
it is that Stone mentioned it.

HN> or perhaps a Moment (the
HN> delta-time to remember an accidental).

Well, no, the normal behaviure (I kant zpel) should be to reset at every bar
line. That would not be possible with a delta-time - because accidentals
first in measure should last longer than accidentals last in measure.

HN>> with note heads), this needs to be in a context higher than
HN>> Tie_engraver. FIXME",
HN>> /* creats*/       "Accidentals",
HN>> /* acks */ "rhythmic-head-interface tie-interface arpeggio-interface",
HN>> -/* reads */ "localKeySignature forgetAccidentals noResetKey
HN>> autoReminders", +/* reads */ "localKeySignature lazyKeySignature
HN>> forgetAccidentals oneMeasureLazy extraNatural autoAccidentals
HN>> autoCautionaries",
HN>> /* write */       "");
HN> 
HN> this should have a list of properties written using set_property().

???? I am not having access to the sources right now, but I don't just
understand what you mean.

HN> good question: we don't have a section on accidentals yet. Maybe you
HN> could add it somewhere (close to the section on notes and rests.)

I'll have a look when I manage to build the web-doc.
 

-Rune




reply via email to

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