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
}