On 1/13/20, 12:25 PM, "Kieren MacMillan" <[email protected]> wrote:

    Hi Paolo (et al.),
    
    > Well, I investigated as well. I think that the only way to solve this is 
to use the combination
    > Y-offset + \offset + 2.19
    > As you can see, this seems to work in 2.19
    > http://lilybin.com/yb5u35/12
    
    Not always: <http://lilybin.com/yb5u35/14>
    
I think this is due to the fact that the default value of  Y-offset is a 
unpure-pure-container procedure (see 
http://lilypond.org/doc/v2.19/Documentation/internals/ottavabracket  ) so that 
it's an approximation, rather than an actual value.  This has at its heart the 
potential infinite loop I discussed earlier.  The default value isn't the 
*actual* finished position, it's an *estimated* finished position.

So offset applies to the *estimated* position, and then the spacing engine 
works on the offset+estimated postion and ends up putting things where it 
thinks they belong.  The slur is not part of the estimation, so the offset 
applies to the position absent the slur, and then the slur avoidance is added 
if needed.

At least, that's what I think is going on .

Carl



\version 2.19.83

{   
   \ottava #1 c''''8\( 8\)\ottava #0
   r4   
   \once \offset Y-offset 1.5 Staff.OttavaBracket    
   \ottava #1 c''''8 8 \ottava #0     
   r4   
   \ottava #1 c''''8\( 8\)\ottava #0
   r4   
   \once \offset Y-offset 1.5 Staff.OttavaBracket    
   \ottava #1 c''''8\( 8\)\ottava #0     
   r4      
}


Reply via email to