Am Mo., 10. Dez. 2018 um 06:18 Uhr schrieb Flaming Hakama by Elaine
<ela...@flaminghakama.com>:

> I'm basically unsure about every step here:
>
> Is there such a thing as "the default measure number markup function"?

Yes, look into engraver-init.ly, there you'll find for "Score":
barNumberFormatter = #robust-bar-number-function
barNumberFormatter is a context-property, which is set to the
procedure 'robust-bar-number-function'

robust-bar-number-function is defined in translation-functions.scm

>
> Can I specify another function to be used instead of the
> default measure number markup function, and if so, how?

Yes - see below

> Can I invoke this new measure number markup function on an as-needed basis--
> not replace the default measure number markup function, since I would use that
> everywhere other than the places I explicitly specify to use the new one?

You would need to replace the default by the customized function and
re-enable the default afterwards.

>
> Can I supply this function with a number-type argument?

Sure.

> Within my new measure number markup function, how can I access the current 
> measure number?

It's internally delivered, see the the 'barnum'-argument of
'robust-bar-number-function'

> Within my new measure number markup function, how can I add numbers?

Simple addition

> Within my new measure number markup function How can I turn a number into 
> markup?

Convert into string.

> Here is pseudocode, of what I thought the function might look like.
> It doesn't work because, among other things,
> * I don't know how to convert a number to a markup.

See above

> * I don't know how to override the default measure number markup function.

Set the context-property 'barNumberFormatter' to the new procedure.

> * The syntax of "let" is also confusing (I have to enclose everything
> in another set of parens just to have scope where the variable is defined?)

Well, I'd recommend to work through a guile/scheme tutorial.

\version "2.19.82"

#(define (double-bar-number increase-amount)
  (lambda (barnum measure-pos alt-number context)
   #{
        \markup
          \override #'(baseline-skip . 2)
          \center-column {
         #(number->string (+ increase-amount barnum))
         #(robust-bar-number-function barnum measure-pos alt-number context)
       }
   #}))

\layout {
  \context {
    \Score
    \override BarNumber.break-visibility = ##(#f #t #t)
  }
}

% bass part
\score {
    \relative c {
        \clef bass
        c1 | 1 | 1 | 1 | \break
        \set Score.barNumberFormatter = #(double-bar-number 4)
        \repeat volta 2 {
            \bar "[|:"
            b1 | 1 | 1 | 1
            \bar ":|]"
        } \break
        \set Score.barNumberFormatter = #robust-bar-number-function
        \set Score.currentBarNumber = #13
        e1 | 1 | 1 | 1 |
    }
}


Cheers,
  Harm

_______________________________________________
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user

Reply via email to