Greetings, First, thank you for all your work on LilyPond, and I hope this is the right place for messages like this.
I’m interested in writing a Scheme engraver to create playing technique transition lines, like what’s shown at https://steinberg.help/dorico/v4/en/dorico/topics/notation_reference/notation_reference_playing_techniques/notation_reference_playing_techniques_continuation_lines_c.html My goal is to be able to create what’s shown with the dashed lines (although I personally wouldn’t use dashed lines): lbp → nbp → hbp → lbp In case it’s helpful, I previously posted about this at https://lists.gnu.org/archive/html/lilypond-user/2023-06/msg00152.html My understanding is that using TextSpanner is the usual way of doing this, and Mark Knoop generously shared a solution that uses TextSpanner (https://lists.gnu.org/archive/html/lilypond-user/2023-06/msg00154.html). The limitation of using TextSpanner that I haven’t been able to circumvent is that adjacent TextSpanner objects stack on top of each other. This means that I can’t quite get → s.p. → ord. above a staff. Instead, the “→ ord.” appears above the “→ s.p.”. I’ve attached a PDF showing this, and the code I used with Mark Knoop’s solution is included in a postscript. I believe that the “right” way to do this is with a Scheme engraver that behaves like a combination of Dynamic_engraver and Dynamic_align_engraver (which are both implemented in C++). The problem is that, while I have a fair amount of development experience (https://github.com/nwhetsell) and have written a custom engraver (https://github.com/nwhetsell/lilypond-bending-additions), I’m pretty sure that an engraver for playing technique transitions is going to be a lot more complex than anything I’ve done in LilyPond (I’m nearly certain it will require a new event class <https://extending-lilypond.gitlab.io/en/extending/properties-types.html#new-event-class>, for example). If anyone is willing to point me in the right direction on how to do this and answer occasional (and inevitable) questions about implementation, I would be very grateful! Thanks, Nate PS — Here’s the code used to create the attached PDF: \version "2.25.5" \include "transitionSpanner.ily" \paper { page-breaking = #ly:one-line-auto-height-breaking top-margin = 0 left-margin = 0 right-margin = 0 oddFooterMarkup= ##f } { \once \transitionSpanner "" "s.p." 1\startTextSpan \once \transitionSpanner "" "ord." 1\stopTextSpan \startTextSpan 1\stopTextSpan }