bug-lilypond
[Top][All Lists]
Advanced

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

## Re: Vertical space for imaginary, real collisions

 From: Marcus Macauley Subject: Re: Vertical space for imaginary, real collisions Date: Wed, 25 Oct 2006 21:59:37 -0400 User-agent: Opera Mail/9.00 (Linux)

Graham Percival wrote:


I believe you are mistaken. The space that lilypond creates in the first line is appropriate; if the text occurred beneath the sixteenth notes, any less space would result in a collision. LilyPond calculates this space based on drawing a box around the whole system.


In the second line, there is no collision. If you zoom in, you can see a space.


You may be technically correct about what is or is not a collision (according to Lilypond's definition, anyway), but to my eye, the first line looks like nowhere near a collision, and the second line looks very much like a collision (until I zoom in). Perhaps the revised example at the end of this message demonstrates this more clearly.


As for traditional engraving practice, in my experience, it would be very unusual for a professionally engraved score to allow as much vertical space as Lilypond does in the first line, or as little in the second.


Examples abound of published scores which would disregard the collision which I say Lilypond "imagines" in the first line -- that is, where the vertical spacing is considered based on the actual (visual) shape of the staves and objects attached to it, rather than treating each staff as a box and the invisible space therein as sacred. A particularly striking example of this sort of "interlocking" can be found in the Henle edition (1980) of the Beethoven Piano Sonatas, volume II, p. 195, in measure 186. Perhaps I could scan it, if anyone is interested.


As for the second line (the text seeming to collide with the beam), I have found many analogous instances in published music where more space is allowed, and a few which allow only such a thin hairline of space as Lilypond does. I would say that, in general, a little more such space is given -- perhaps 0.5 staff spaces would be a more appropriate minimum for Lilypond, though it would be nice if the user could set this minimum value globally, as it is somewhat a matter of personal preference.

These two issues then -- which I would summarize:


1. Vertical interlocking of staff objects should be allowed by default, with an option to disable; 2. Minimum vertical space between objects should be maybe 0.5 spaces, and anyway user-settable


are somewhere between defects, collisions, and enhancement requests, depending on your point of view.

Cheers,
Marcus

%%%%%%% revised example: %%%%%%%

\version "2.9.22"
\score { <<
\new Staff \relative a' {
\repeat unfold 3 { a4 a a a }
<< {a4 a a a} \\ {a,8 a a a a a \times 2/3 {a a a}}  >>
\break
\repeat unfold 4 << {a'4 a a a} \\ {a,8 a a a a a a a} >>
}

\new Staff \relative a' {
a1^\markup {
\column {
\line {Too much}
\line {vertical space?}
}}
a a a
\break
a^\markup {
\column {
\line {Enough}
\line {vertical space?}
}}
a a a
} >>
}
\layout { indent = #0 }

%%%%%%% end revised example %%%%%%%




Marcus Macauley wrote:

Sometimes Lilypond creates vertical space between staves to avoid a collision between, for example, a text markup in one staff and a beam in the other staff, when these two things happen in different measures and wouldn't actually collide. On the other hand, in cases where they do collide and hence the vertical space is necessary, sometimes it isn't quite enough.
 This file demonstrates both cases:
\version "2.9.22"
<<

\new Staff \relative a' { a4 a a a << {a a a a} \\ {a,8 a a a a a a a} >> \break \repeat unfold 3 { a'4 a a a << {a a a a} \\ {a,8 a a a a a a a} >> }
}
\new Staff \relative a' {
a1^\markup {
\column {
\line {This text wouldn't collide w/ the beam,}
\line {so less vertical space is needed.}
}}
a \break
a^\markup {
\column {
\line {This text does collide with the beam,}
\line {so more vertical space is needed.}
}}
a a a a a
}
>>
\layout {  }





reply via email to

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