#(define (equalise-articulations-engraver context) (let ((scripts '())) (make-engraver (acknowledgers ((script-interface eng grob source-eng) (let* ((cause (ly:grob-property grob 'cause)) (type (ly:event-property cause 'articulation-type)) (prev (assoc-get type scripts '()))) (set! scripts (assoc-set! scripts type (cons grob prev)))) )) ((process-acknowledged engraver) (for-each (lambda (x) (let* ((grobs (cdr x)) (side-supports (map (lambda (grob) (ly:grob-object grob 'side-support-elements)) grobs)) (side-supports (filter ly:grob-array? side-supports)) (side-supports (map ly:grob-array->list side-supports)) (side-supports (apply append side-supports)) (side-supports (ly:grob-list->grob-array side-supports))) (for-each (lambda (y) (ly:grob-set-object! y 'side-support-elements side-supports)) grobs))) scripts) (set! scripts '()))))) sep = #(define-music-function (m) (ly:music?) #{ \new Voice <>-$m #}) mus = { g8 \sep^\upbow g_\upbow g g g8 \sep_\upbow g^\upbow g g } \version "2.24.0" \language "english" \new Staff \mus \new Staff \with { \consists #equalise-articulations-engraver } \mus