This is helpful, and you solution works well. So your explanation is, I am 
certain, correct.

I *think* something else may be at work here as well. Compare the results of 
the following two examples (which I generated with ragged-right = ##t to make 
the images compact):

\version "2.18.2"
\relative c'' {
        \tieUp
        <cis!~ e~>1
        <cis!-\shape #'((0.0 . 5.0) (0.0 . 0.0) (0.0 . 5.0) (0.0 . 2.0))~ 
e-\shape #'((0.0 . -5.0) (0.0 . 0.0) (0.0 . 0.0) (0.0 . -5.0))~>1 |
        <cis! e>1 |
}



AND

\version "2.18.2"
\relative c'' {
        \tieUp
        <cis!~ e~>1 \break
        <cis!-\shape #'((0.0 . 5.0) (0.0 . 0.0) (0.0 . 5.0) (0.0 . 2.0))~ 
e-\shape #'((0.0 . -5.0) (0.0 . 0.0) (0.0 . 0.0) (0.0 . -5.0))~>1 |
        <cis! e>1 |
}


Adding the \break in a space that ought not to affect the tie switches which 
\shape is observed, but it switches which one “counts”. Maybe it is enough to 
document this issue and the solution and to mention that the case I submitted 
leads to essentially unpredictable results (OK, not entirely, but I think the 
predictability is low for most people).

But I do wonder what underlying behavior this case has hit upon and if it would 
rear its head elsewhere. Certainly, from a user perspective, it comes across as 
a head scratcher. I’m fine if this goes no further than a documentation fix, 
but if this represents something odd beneath the surface, it could be worth 
looking at.

-Arle


> The problem here is TieColumn being involved.
> TieColumn sets control-points for the containing ties and the values
> provided by \shape will be ignored more or less arbitrary.
> To prevent TieColumn doing so and have the shape-values accepted you
> need to set positioning-done #t at appropriate place _and_ set the
> direction of each containing tie. Which may be done by \tieUp for all
> or using direction-modifiers. _And_ apply \shape to all individual
> in-chord ties.
> 
> \relative c'' {
>        <
>         cis!
>           -\shape #'((0 . 0.5) (0 . -2) (0 . 1) (0 . 0))
>           ^~
>         e
>           -\shape #'((-2 . 0) (0 . 10) (0 . 10) (2 . 0))
>           ^~
>> 1 |
>        \once \override TieColumn.positioning-done = ##t
>        <cis! e>1 |
> }
> 
> \relative c'' {
>        \tieUp
>        <
>         cis!
>           -\shape #'(((0 . 0.5) (0 . -2) (0 . 1) (0 . 0))
>                      ((0 . 0.5) (0 . -2) (0 . 1) (0 . 0)))
>           ~
>         e
>           -\shape #'(((-2 . 0) (0 . 10) (0 . 10) (2 . 0))
>                      ((-2 . 0) (0 . 2) (0 . 2) (2 . 0)))
>           ~
>> 1 |
>        \break
>        \once \override TieColumn.positioning-done = ##t
>        <cis! e>1 |
> }
> 
> 
> Afair, it's a known limitation of \shape.
> So I tend to go for a documentation-issue here.
> 
> Other opinions?
> 
> 
> Cheers,
>  Harm

_______________________________________________
bug-lilypond mailing list
bug-lilypond@gnu.org
https://lists.gnu.org/mailman/listinfo/bug-lilypond

Reply via email to