(Adding Aaron in CC.)
Le 07/11/2021 à 12:39, Thomas Morley a écrit :
Hi,
commit 94860164493ab3a209986b0e3662ff7bd8958cb5
Author: Mike Solomon <m...@apollinemike.com>
Date: Mon Mar 28 10:58:29 2011 -0400
Assures smooth transitions at glissando line breaks.
When a glissando breaks over lines, the left point of the beginning-of-line
glissando picks up on the y-axis where the right point of the end-of-line
glissando ends.
is not true for cross-staff, broken Glissando.
For a down-pointing Glissando, ending in a lower Staff this "pick-up"
point is not matched.
For an up-pointing Glissando starting in a lower Staff the first part
is completely off. This is
https://gitlab.com/lilypond/lilypond/-/issues/4806
See attachment.
I get seemingly correct output in the issue's
example when adding
\override Glissando.simple-Y = ##f
So I'd start by investigating why simple-Y was
added in the first place.
While attempting to code stemmed Glissandi in scheme, there was a very
helpful discussion starting here:
https://lists.gnu.org/archive/html/lilypond-user/2021-10/msg00326.html
lastly arriving at
https://lists.gnu.org/archive/html/lilypond-user/2021-11/msg00003.html
Basically I try to get start- and end-points of all kinds of
Glissandi, printing crosses there.
Many thanks to Aaron!
That said,...
If I always compensate the right ending-point with (pseudo-code)
(ly:grob-relative-coordinate <Glissando-grob> <System-grob> Y)
Then the crosses are at those positions Mike's patch promises.
Really System? Isn't this going to create a
cyclic dependency between the stencil and
vertical alignment for non-cross-staff glissandi
via VerticalAxisGroup skylines? Off the top I would
think it should be a matter of correcting
reference points (see above).
I attach the new scheme-code and an image (with correct placed
crosses, but untouched default-stencil)
Ofcourse it's trivial to extend this scheme-code to create
Glissando-stencil instead of those crosses.
Better ofcourse is fixing the problem in our source.
Alas, because my lack of C++-knowledge, I can't do it myself.
You should learn C++ someday :-)
Best,
Jean