On 2019-04-18 6:40 am, Carl Sorensen wrote:
On 4/17/19, 1:41 PM, "Aaron Hill" <lilyp...@hillvisions.com> wrote:

    On 2019-04-17 12:16 pm, Thomas Morley wrote:

    > [ . . . ] why does Tie has a font-size property at all?

That I cannot speak to. I'd have to dig through the code to see where
    it is used.

Ties and slurs are not Bezier curves, but Bezier sandwiches (bounded
by upper and lower Bezier curves).  As the font size gets smaller, the
ties get thicker as a function of the thickness parameter (making the
elements a little bit darker, just like the Emmentaler fonts).

That is all well and good, but it does not explain why Ties (or Slurs) need a "font-size" property. The code that handles the thickness of the Bezier sandwich consults "thickness" and "line-thickness" of the grob as well as the thickness of the StaffSymbol. "font-size" never enters into it.

It turns out that the reason for needing "font-size" is because of debug annotations. When LilyPond is compiled with DEBUG_TIE_SCORING (or DEBUG_SLUR_SCORING), the function ly:tie::print (or ly:slur::print) will attach whatever string is set in the "annotation" property to the stencil.

However, there is an important difference between ly:tie::print and ly:slur::print. For Ties, the annotation is simply added to the stencil without any special handling of "font-size". But a Slur specifically checks for a "font-size" property and, upon finding none, adds a default value of -6 to the list of properties when interpreting the annotation markup.

It is currently necessary for define-grobs.scm to set the default value for "font-size" to -6 in order for the debug annotations to match between the two grobs. However, ideally the logic in tie.cc for printing should be virtually identical to that in slur.cc. In fact, a comment in the code mentions a TODO for merging the code. If this were done, define-grobs.scm would no longer need to set a default value to support such a debug annotation.


-- Aaron Hill

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

Reply via email to