lilypond-devel
[Top][All Lists]
Advanced

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

Re: Makes sure that ledger lines do not overlap with accidentals. (issue


From: Janek Warchoł
Subject: Re: Makes sure that ledger lines do not overlap with accidentals. (issue 4898060)
Date: Sat, 27 Aug 2011 14:36:42 +0200

2011/8/22 Han-Wen Nienhuys <address@hidden>:
> 2011/8/22 Janek Warchoł <address@hidden>:
>> I wholeheartedly disagree, i think that this issue isn't negligible
>> (or did i misunderstood you, Han-Wen?).
>
> My impression is that the patch was not actually changing output.
> If it was intended to, I couldn't tell from a read of the patch.

Ah, ok.

2011/8/23 Mike Solomon <address@hidden>:
> The old patch is also flawed, in that it only changes the ledger line
> directly next to the accidental.  The entire bounding box of the accidental
> should, however, be taken into account.

Exactly.

> I maintain that the best solution is:
>
> {
>  \override Staff.Accidental #'layer = #-100
> \override Staff.LedgerLineSpanner #'layer = #-101
> \override Staff.Accidental #'whiteout = ##t
> <des ces'>
>
> }
>
> Which is a trivial change to engravers-init.ly.
> I'll post a patch later today unless anyone sees a better alternative.

Hmm... maybe we shouldn't create ledger lines for noteheads, but for
noteColumns?  This way there would be no duplicate ledgers.  We could
also check "from the level of noteColumns", i.e. cycle through all
notes and see if they have accidentals, then engrave ledgers according
to that.
(maybe i'm speaking nonsense, i have limited knowledge of internals
and moreover my remote destop died so i cannot check it directly)

Another thought: when there are many accidentals in a noteColumn, they
are moved around so they don't collide.  So there is something in the
code that knows about positions of all accidentals in a notecoumn,
isn't it?  It should be easy then to apply this knowledge to
noteColumn's ledgers - if there are no duplicates.

What do you think?

cheers,
Janek



reply via email to

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