[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Issue 600 in lilypond: Regression: 'packed-spacing definition may pu
Re: Issue 600 in lilypond: Regression: 'packed-spacing definition may put notes outside the staff
Sat, 15 Nov 2008 12:21:38 -0800
On Fri, 2008-11-14 at 21:08 +0000, Neil Puttock wrote:
> 2008/11/14 Joe Neeman <address@hidden>:
> > On Fri, 2008-11-14 at 09:56 -0800, address@hidden wrote:
> >> Issue 600: Regression: 'packed-spacing definition may put notes outside the
> >> staff
> >> http://code.google.com/p/lilypond/issues/detail?id=600
> >> Comment #4 by n.puttock:
> >> Hi Joe,
> >> You might have missed the discussion here:
> >> http://lists.gnu.org/archive/html/lilypond-user/2008-07/msg00671.html
> >> Is there a way to keep this fix, while also having tight spacing for
> >> ligatures in
> >> gregorian chant?
> > Thanks, indeed I had missed that conversation. This turned out to be
> > nothing ancient-specific, it was just a corner case with
> > ragged-bottom=##t and ragged-bottom-last=##f. It's fixed in git.
> Cheers for fixing that. How does it relate to Issue 347?
It's probably a step back, but at least we're internally consistent now.
Actually, I have some objections to issue 347, but I'll put those in the
> Unfortunately, I linked to the wrong part of that thread; it's around
> here, http://lists.gnu.org/archive/html/lilypond-user/2008-08/msg00444.html,
> where it's pointed out that the ancient headword occupies more systems
> after your fix for #600: the spacing is too loose for the ligatures.
Ah, sorry, I was looking at completely the wrong issue. Without doing
any investigation, I think the problem is caused by the way the ligature
engravers work: they allow the normal Note_head_engraver to do it's job,
then they destroy all of the noteheads and cram new ones into a single
Paper_column. This means that there are a bunch of empty Paper_columns
floating around that were created to hold notes that are now scrunched
up into a ligature. The extra Paper_columns confuse the spacing engine;
I've encountered them before.
The real solution is to set the note head engraver to ignore notes in a
ligature and to rewrite the ligature engravers so that they look at note
events instead of piggy-backing off the note head engraver. But I'll see
if there's a special-case spacing hack that will do for now.