On Fri, May 14, 2021 at 5:13 PM Aaron Hill <lilyp...@hillvisions.com> wrote:
> On 2021-05-14 2:47 pm, Ralph Palmer wrote: > > I *did* find a thread in the archive : > > change of volta number > > which has gotten me close, but has an extra end-repeat before the first > > volta ending bracket. I'm also not sure the format is the most recent. > > How about this? > > %%%% > \version "2.22.0" > \include "english.ly" > > changeVoltaText = > #(define-music-function > (text) (markup?) > (define (is-volta-text? cmd) > (and (pair? cmd) (eq? 'volta (car cmd)) (markup? (cadr cmd)))) > (define (replace-volta-text cmd) > (if (is-volta-text? cmd) `(volta ,text) cmd)) > (define (proc ctxt) > (let ((cmds (ly:context-property ctxt 'repeatCommands))) > (set! cmds (map replace-volta-text cmds)) > (ly:context-set-property! ctxt 'repeatCommands cmds))) > #{ \context Score \applyContext #proc #} ) > > test = { > \time 3/4 > \repeat volta 3 > { > a'4 b' c' | > b'4 c' d' | > } > \alternative { > { > \changeVoltaText "1., 3." > e'4 f' g' | > } > { > d'4 c' b' | > } > { > \changeVoltaText \markup \with-color #red "4." > g'4 a' b' | > } > } > c'1 > } > > \score { > \test > } > %%%% > > NOTE: I'm using \markup in the final alternative just to demonstrate > that it works. > > > -- Aaron Hill > Excellent! Thank you, Aaron. I wish I could understand what your function does - how it works. Would it make sense to add this to either the Lilypond Snippet Repository or the documentation or both? All the best, Ralph -- Ralph Palmer Seattle USA (he, him, his) palmer.r.vio...@gmail.com