lilypond-devel
[Top][All Lists]
Advanced

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

Re: fix Issue 2462. (issue 108280044 by address@hidden)


From: Keith OHara
Subject: Re: fix Issue 2462. (issue 108280044 by address@hidden)
Date: Sat, 05 Jul 2014 10:46:33 -0700
User-agent: Opera Mail/12.16 (Win32)

On Fri, 04 Jul 2014 14:38:19 -0700, Janek Warchoł <address@hidden> wrote:

2014-07-04 23:26 GMT+02:00 Janek Warchoł <address@hidden>:

That's actually not what i want to do; I apologize for being unclear.
I *want* the columns to behave the same way in case of both
accidentals and lyrics (and everything else).  The desired behaviour
is that changing min_distance shouldn't affect ideal distance.

Sensible, for the data object Springs.  The special behavior when min_distance 
is larger or within 0.3 of ideal is confusing.  The fact that the special 
behavior appears only after using merge_springs() makes things more confusing.

Notice that frax/springs keeps that special behavior, in Spring::length().  The 
natural, force=0, length of a spring is *always* at least min_distance+0.3

Achieving this [desired, not-special] behaviour when columns arewide due to 
lyrics is simple:

but there
are side effects (too tight spacing in some cases, for example in
beam-rest-extreme.ly) which i'm unable to fix.

Trace back and see what code uses that +0.3 to good effect, though probably by 
accident.

Only spacing-spanner.cc uses Spring::merge_springs(), and when setting 
'beam-rest-extreme.ly' it is used to 'merge' only one spring!

So one good effect is that accidentals are prevented from getting too close to 
the previous note.  That would be better handled with padding associated with 
the accidental
<http://code.google.com/p/lilypond/issues/detail?id=3869>

You could limit the changes in one patch, if you like, by moving the "ideal = 
max(idea, min_distance +0.3)" to the point where spacing-spanner.cc finds 
min_distance to avoid collisions.  A magic number is better than a magic number in a 
mysterious place, and making the 0.3 a parameter is safer to do after we narrow down its 
beneficial effect.

If merge_springs() behaves more simply, it might do a little better for
<http://code.google.com/p/lilypond/issues/detail?id=3887>
(I notice that the option 'average-spacing-wishes' is no longer checked; the 
code seems to always average spacing between voices.)




reply via email to

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