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