Springs and rods

classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

Springs and rods

Andrew Bernard
Yet another annoying question about documentation from me.

After figuring out how to make a glissando longer, and discovering this in the NR under the spanner interface:

minimum-length (dimension, in staff space)
Try to make a spanner at least this long, normally in the horizontal direction. This requires an appropriate callback for the springs-and-rods property. If added to a Tie, this sets the minimum distance between noteheads.

I can only ask and I think reasonably where is this mystical springs-and-rods mechanism explained? Why does one need to do this:

  \override Glissando #'minimum-length = #4
  \override Glissando #'springs-and-rods = #ly:spanner::set-spacing-rods

How is one meant to know what an 'appropriate callback is'? What other callback would one use? And what for?

I have to honestly say that if I could ever understand the lilypond internals I would readily volunteer to rewrite these sections in the NR, which occur far too often I am afraid. I've been using lilypond heavily for years, and sections like this simply make me feel dumb. Perhaps I missed something fundamental along the learning curve.

None of this criticism is aimed at any person. I am well aware this sort of manual is reference and not tutorial. There used to be a series of computer publications called [X]: The Missing Manual. I feel we need the missing manual for lilypond. I don't know enough to write it.

All help most appreciated.

Andrew






_______________________________________________
lilypond-user mailing list
[hidden email]
https://lists.gnu.org/mailman/listinfo/lilypond-user
Reply | Threaded
Open this post in threaded view
|

Re: Springs and rods

Trevor Daniels


Andrew Bernard wrote 18/01/2019 04:33:12
Subject: Springs and rods

>Yet another annoying question about documentation from me.
>
>After figuring out how to make a glissando longer, and discovering this
>in the NR under the spanner interface:
>
>minimum-length (dimension, in staff space)
>Try to make a spanner at least this long, normally in the horizontal
>direction. This requires an appropriate callback for the
>springs-and-rods property. If added to a Tie, this sets the minimum
>distance between noteheads.
>
>I can only ask and I think reasonably where is this mystical
>springs-and-rods mechanism explained? Why does one need to do this:
>
>   \override Glissando #'minimum-length = #4
>   \override Glissando #'springs-and-rods =
>#ly:spanner::set-spacing-rods
This is acknowledged to be sub-optimal. AIUI, it stems from the multiple
uses
of the 'minimum-length property. It is used in several interfaces,
including
lyric-hyphen, multi-measure-rest, etc, as well as spanner. Some of these
require the additional override to work correctly; others don't. The
solution
would be to separate out the two types of use of the 'minimum-length
property
into two separate properties, one incorporating set-spacing-rods, but
the
difficulties involved in doing that seem severe as it's at least 6 years
since this
was discussed as an issue. I don't understand what the  complexities are
- maybe
one of the devs could explain further. But in the expectation this would
eventually be fixed (and so the need for documentation  obviated) it has
never
been documented properly.

Trevor


_______________________________________________
lilypond-user mailing list
[hidden email]
https://lists.gnu.org/mailman/listinfo/lilypond-user