lilypond-devel
[Top][All Lists]
Advanced

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

Re: First stab at getting bar extents right. (issue 5186049)


From: address@hidden
Subject: Re: First stab at getting bar extents right. (issue 5186049)
Date: Thu, 6 Oct 2011 10:28:53 +0200

On Oct 6, 2011, at 3:36 AM, Keith OHara wrote:

> <mtsolo <at> gmail.com> writes:
> 
>> However, [barlines] do not block accidentals hanging
>> over, and furthermore, this extra height blocks some lyrics but not
>> others.
> 
> Accidentals hanging over didn't seem to bother anybody, and we do want 
> other things tied to note-columns to cross over bar-lines, such as
> text markup.
> 

True.
What bugs me about the accidental overlap is that it is not consistent - higher 
accidentals are allowed to overlap, whereas lower ones aren't.  What'd be best 
is if someone could checkout Behind Bars on this (I don't have a copy) to see 
if accidental overlap is Kosher and, if so, how much is Kosher.

The big problem, though, comes from an inconsistency in lyric handling.  To wit:

\relative c''' {  a2 b a b }
\addlyrics { fooobar f foobar f }

\relative c' {  a2 b a b }
\addlyrics { fooobar f foobar f }

> The case of lyrics passing under the bar line should be very rare
> <http://lists.gnu.org/archive/html/lilypond-devel/2011-02/msg00481.html>
> It happens in short test files, though, and might cause confusion and
> wasted time.
> 
>> The pure height of barlines should correspond to the height of
>> neighboring grobs in the VerticalAlignment,
> 
> I'm assuming "pure height" means the height estimate used before 
> line-breaking,

Yup

> and neighboring means nearest-neighbors on each side.

Yup - neighbors until an arbitrary point to the right and the left (in the 
patch, neighbors until the next grob that takes its pure height estimate from a 
neighbor - so, basically, the combined pure heights of all grobs in the 
measure).

> 
> What is a VerticalAlignment, and which grobs does it contain?
> 

A VerticalAlignment is more or less synonymous with certain contexts.  All 
grobs in a Staff belong to a vertical alignment, idem for Lyrics, idem for 
Dynamics, etc..

>> 1) It allows lyrics to recede all the way back to the StaffStartBar
> 
> The staff start bar doesn't seem to get a horizontal skyline.  If we 
> want lyrics to get padding from the start bar, we would need to compute
> a horizontal skyline for it, so that *_paper_column:minimum_distance()
> finds the collision and returns the right distance to make a rod to 
> enforce the padding.

The issue with this is that the SystemStartBar is a spanner that is created 
once and thus cannot enter into the spacing equation.
The LeftEdge grobs seems promising, but they get suicided.  If I could find a 
way to have them stick around and if I could figure out how the spacing engine 
treats breakable grobs (i.e. is there a way to tell the spacing engine "only 
use an Item's horizontal skyline if it is at the beginning of a line" during 
the preprocessing phase - I'm sure this is possible, as this is how clefs and 
time signatures at line breaks must get spaced...I just don't know how), then I 
could give these horizontal skylines.

Ideas?

> 
>> Furthermore, it seems like the horizontal skylines are outta whack,
> 
> They are drawn as if the staves, lyrics lines, etc, are all compressed
> vertically, because they get used before line breaking and thus before
> things get vertically stretched.
> 
> 

Got it.


reply via email to

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