My apologies to all!!

I had looked at 2.5.3 Alternative bar numbering too quickly.

What I need has nothing to do with alternative endings.

I need a sequence of bars with numbers with letters like sequential bars numbered, for example:

A, B, C. 1, 2, 3, 4, 4A, 4B, 4C, 4D, 5, 6, 7, etc. that increments the right-most character until the feature is turned off. The next bar might need to be specified with Score.currentBarNumber.

Here is an MWE done one bar at a time.:

\version "2.25.80"

bnLet =
#(define-music-function
   (parser location aLetter)
   (string?)
   #{
     \once \override Score.BarNumber.stencil =
     #(lambda (grob)
        (let ((text (ly:grob-property grob 'text)))
          (grob-interpret-markup grob
                                 #{ \markup \sans $aLetter #})))
   #})
setA = { \bnLet #"A" }
setB = { \bnLet #"B" }
setC = { \bnLet #"C" }

addA = {
  \temporary \override Score.BarNumber.stencil =
  #(lambda (grob)
    (let ((text (ly:grob-property grob 'text)))
     (grob-interpret-markup grob
      #{ \markup \concat { #text "A" } #})))
}
addB = {
  \temporary \override Score.BarNumber.stencil =
  #(lambda (grob)
    (let ((text (ly:grob-property grob 'text)))
     (grob-interpret-markup grob
      #{ \markup \concat { #text "B" } #})))
}
addC = {
  \temporary \override Score.BarNumber.stencil =
  #(lambda (grob)
    (let ((text (ly:grob-property grob 'text)))
     (grob-interpret-markup grob
      #{ \markup \concat { #text "C" } #})))
}
addStop = \revert Score.BarNumber.stencil

ma = \fixed c'' {
  \override Score.BarNumber.break-visibility = #end-of-line-invisible
  \set Score.barNumberVisibility = #all-bar-numbers-visible
  \setA b,1
  \setB c
  \set Score.currentBarNumber = 1
  d e d
  \set Score.currentBarNumber = 4
  c
  \set Score.currentBarNumber = 4
  \addA
  d \addStop
  \set Score.currentBarNumber = 4
  \addB
  b, \addStop
  \set Score.currentBarNumber = 4
  \addC
  a,
  \addStop
  \set Score.currentBarNumber = 5
  b,
}

At least next would be a function similar to \bnLet which would take the alphabet character and produce \addA, \addB,etc.

Thank you,

Paul



Reply via email to