Hey all,

Investigating this MusicSE question 
https://music.stackexchange.com/questions/142868/how-to-change-thickness-of-individual-ties-in-a-chord-in-lilypond[1]
 has shown that setting 
`TieColumn.positioning-done` to `#t` messes up the thickness property.

The reason for this is that `Tie.direction` is only set by 
`TieColumn.positioning-done`, and in 
tie.cc:252 in `ly:tie::print` the thickness is multiplied by direction for sign:

```
  a = Lookup::slur (b, get_grob_direction (me) * base_thick, line_thick,
                    dash_definition);
```

This has the effect of changing the sign of the thickness depending on 
direction.

What `Lookup::slur` is doing is basically just to clone the original control 
points giving us two 
curves and offset the middle two points of each by `thickness / 2` 
perpendicular to the slur 
direction, up for the clone and down for the original. 
Then`Lookup::bezier_sandwich` which 
creates a closed path along both curves.

So as far as I can see the sign of the thickness will only change the order in 
which the sandwich is 
done (top curve there and bottom curve back vs. bottom curve there, top curve 
back). So this 
should actually not have any visible effect, as we can also see here:

```
{
  \override Tie.after-line-breaking =
  #(lambda (grob)
     (display (ly:stencil-expr (ly:grob-property grob 'stencil)))
     (newline))
  g'1-\tweak thickness 1.2 ~
  g'
  g'1-\tweak thickness -1.2 ~
  g'
}
```

So I want to ask you guys if you A) know why this is done in the first place 
and B) if you think it is 
reasonable to get rid of the multiplication with direction to make to code more 
robust. 
Alternative would of course be to add a fallback for the direction (which 
should be DOWN), but 
considering this not actually doing anything of course the simplest solution 
would be to not 
multiply by the thickness in the first place.

Cheers,
Tina

--------
[1] 
https://music.stackexchange.com/questions/142868/how-to-change-thickness-of-individual-ties-in-a-chord-in-lilypond/142869?noredirect=1#comment272491_142869

Attachment: signature.asc
Description: This is a digitally signed message part.

Reply via email to