Am Mo., 10. Dez. 2018 um 11:37 Uhr schrieb Thomas Morley <thomasmorle...@gmail.com>: > > 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) > } > #}))
Likely better to use the default procedure for both, making for: #(define (double-bar-number increase-amount) (lambda (barnum measure-pos alt-number context) #{ \markup \override #'(baseline-skip . 2) \center-column { #(robust-bar-number-function (+ increase-amount barnum) measure-pos alt-number context) #(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