Hi Aaron and Harm,
I started to implement the functionality, finally I more or less
rewrote anything.
As David K once said: rewriting all means at least knowing where the
bugs are...
There is an annoying optical issue where using the angle of the curve
at the end points does not work well for an arrow head that partially
overlaps the curve. Instead, one needs to consider the slope of the
curve a little inwards from the ends so that the arrow appears to be
aligned properly.
I took a stab at patching your code to address this. This involved
some additional computational work for various metrics of a Bezier
curve. See the attached files.
Wow - that's just amazing. Thanks to both of you!!
As to the interface: For, e.g., Glissandos, an arrow tip (not as
beautiful as your Slur arrow) is activated by issuing \overriding
Glissando.bound-details.left.arrow = ##t. I asked myself whether it's
good to have this difference in the interface for Slur arrows where you
use details instead of bound-details and a signed value (#LEFT and
#RIGHT), seeing that Slur.details.arrow-right = #LEFT doesn't give a
reasonable result anyway (at the moment). But I do not really know what
the conceptual difference of details vs. bound-details is, anyway.
Harm, the old code for outside-staff-curve still works with this
solution, so it could be re-used if needed (might be appropriate for my
use case).
Concerning my request for "the option to have an arrow tip at both ends
of the Slur": This is now already implemented since left and right arrow
tip can be activated independently and/or simultaneously.
I'm undecided as to the desired behaviour with broken Slurs. For me,
it's all about graphical annotations in very short "scores" in a music
theory setting where I'll make sure that there are no line-breaks
anyway. But of course there might be good reasons to use
slurs-with-arrow-tips in "real life" scores where one might wish for a
reasonable handling of arrowed broken slurs. I can imagine three
possibilities:
a) arrow head only at the last (resp. first for arrow-left) broken slur
b) arrow head at each broken curve (current situation)
b') arrow head at each broken curve, but partly dashed slur at breaking
points. I try to sketch this in attached image.
To be clear: I do not need this functionality at all, but only wanted to
give an input regarding the possibly reasonable design behaviours. What
do you think?
Lukas
_______________________________________________
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user