[Top][All Lists]

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

Re: Beam avoidance of other voices and stem length for beamed notes

From: address@hidden
Subject: Re: Beam avoidance of other voices and stem length for beamed notes
Date: Thu, 5 May 2011 08:31:53 -0700

On May 5, 2011, at 2:12 AM, Nick Payne wrote:

> On 05/05/11 13:21, address@hidden wrote:
>> On May 4, 2011, at 3:16 PM, Nick Payne wrote:
>>> Latest LP development version has inconsistency. See below.
>>> \version "2.13.61"
>>> \relative c'' {
>>>    \time 3/4
>>>    \key d \minor
>>> <<
>>>    {<e bes>8 r<e a,>  r s }
>>>    \\
>>>    { d, r cis r r4 }
>>>    \\
>>>    { g'8. f16 g8. bes16 a8. g16 }
>>> }
>> The disparity in results comes (I think) from the fact that the flag of the 
>> stem in the left example ends after the beam begins on the X axis, and thus, 
>> the beam collision engraver moves the beam up to avoid the entire stem+flag. 
>>  In the second example, on the other hand, the flag's rightmost X point 
>> falls to the left of the beam's leftmost X point.
> Yes, that seems to be why, as if I add \once \override NoteColumn 
> #'force-hshift = #1 at the beginning of voice 2, then both beams intersect 
> the rests above. However, if the collision avoidance mechanism does shift the 
> note at the beginning of voice 2 horizontally, why doesn't it shift the note 
> far enough for the stem/beam to avoid the flag on the note in voice 1, given 
> that it manages to do so successfully for the second beat in the bar. Or is 
> that difference due to the notes in the two voices being a third apart on the 
> first beat but only a second apart on the second beat.

Hey NIck,
Not to get too technical (but I'm gonna get too technical), the mechanism that 
decides the X placements of grobs (and thus the bleed-over of stems into a 
beam's X extent) does not have anything to do with LilyPond's beam collision 
algorithms.  You'd want to report two separate bugs: one about the fact that 
the horizontal shift of the stem is inconsistent, and one that the 
beam-collision-engraver kicks in for even minuscule overlaps in grobs' 

In this instance, if you put \once \override Beam #'collision-voice-only = ##t 
before the first beam, you're golden.  Meanwhile, I'm working on something for 
the next devel version that gets beams to avoid rests.


reply via email to

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