\version "2.22" connectArrowStem = #(define-music-function (dir) (ly:dir?) #{ \once { \undo \omit Stem % in case someone \omit'ted them  \override Stem.length-fraction = 0 \override Stem.X-offset = 0.65 \override Stem.thickness = 2 \override Stem.stencil = #(grob-transformer 'stencil (lambda (grob stem) (let* ((Y-ext (ly:stencil-extent stem Y)) (Y-pos (interval-index Y-ext (* dir 0.3)))) (ly:stencil-add stem (ly:stencil-translate-axis (parenthesize-stencil (grob-interpret-markup grob (markup #:arrow-head Y dir #f)) 0.08 0.25 0.4 0.07) Y-pos Y))))) } #}) { \omit Stem c'4 d' e'4 \connectArrowStem #UP 4 \connectArrowStem #DOWN }