\version "2.23.9" newRepeatMarker = #(make-music 'MeasureCounterEvent 'mark-new-repeat #t) \defineBarLine "!|" #'("!|" "" " |") repeatCounting = #(define-music-function (n music) (index? ly:music?) #{ \startMeasureCount \repeat unfold #n { \newRepeatMarker #music } #}) repeatCountingWithTags = #(define-music-function (n music) (index? ly:music?) #{ << \tag #'score \repeat unfold #n { #music } \tag #'part \repeatCounting #n { #music \bar "!|" } >> #}) #(define (Phrase_counter_engraver context) (let ((count 1) (count-here #f) (spanner #f) (spanner-to-end #f)) (make-engraver (listeners ((measure-counter-event engraver event) (cond ((eqv? LEFT (ly:event-property event 'span-direction)) (set! count 1)) ((ly:event-property event 'mark-new-repeat #f) (set! count-here #t))))) ((process-music engraver) (if count-here (let ((col (ly:context-property context 'currentCommandColumn))) (set! spanner (ly:engraver-make-grob engraver 'MeasureCounter '())) (ly:spanner-set-bound! spanner LEFT col) (if (> count 1) (ly:grob-set-property! spanner 'text (number->string count))) ;;; <====== here (set! count (1+ count))))) (acknowledgers ((bar-line-interface engraver grob source-engraver) (if spanner-to-end (let ((col (ly:context-property context 'currentCommandColumn))) (ly:spanner-set-bound! spanner-to-end RIGHT col) (ly:engraver-announce-end-grob engraver spanner-to-end '()) (set! spanner-to-end #f))))) ((stop-translation-timestep engraver) (if spanner (set! spanner-to-end spanner)) (set! spanner #f) (set! count-here #f))))) \layout { \context { \Staff \consists #Phrase_counter_engraver } } % { ebass = \relative c, { \clef "bass_8" d4. d8 r4 d8 r | r8 d r4 d f8 g | %45-46 \repeatCountingWithTags 2 { d4. d8 r4 d8 r | r8 d r4 d8 r c4 | } \octaveCheck c, d4. d8 r4 d8 r | r8 d r4 d f8 g | %45-46 \repeatCounting 2 { d4. d8 r4 d8 r | r8 d r4 d8 r c4 | } } ebassUp = \relative c { \clef "bass" d4. d8 r4 d8 r | r8 d r4 d f8 g | %45-46 \repeatCountingWithTags 2 { d4. d8 r4 d8 r | r8 d r4 d8 r c4 | } \octaveCheck c d4. d8 r4 d8 r | r8 d r4 d f8 g | %45-46 \repeatCounting 2 { d4. d8 r4 d8 r | r8 d r4 d8 r c4 | } %\repeatCounting 2 { d4. d8 r4 d8 r | r8 d r4 d8 r c4 | } } \new StaffGroup << \new Staff \with { instrumentName = "Up" } \keepWithTag #'score \ebassUp \new Staff \with { instrumentName = "Low" } \keepWithTag #'part \ebass >> %}