Phil Holmes <m...@philholmes.net> writes: > I have some boiler-plate markup that I use in 16C music to show the lyric > repeat sign they use: a small circle, 2 lines and another circle. This is > what I use, split into separate lines and commented: > > \once \override Lyrics.LyricText.Y-extent = #'(-10 . 10) % stops > collisions with stems > \set lyricMelismaAlignment = #CENTER % keeps the symbol centred > \markup { \raise #1 % shifts it up > { \draw-circle #0.1 #0.1 ##t % draw the first circle > \raise #1 { \draw-line #'( 0 . -2 ) } % draw first line > \raise #1 { \draw-line #'( 0 . -2 ) } % draw second line > \draw-circle #0.1 #0.1 ##t } } % draw final circle > _ _ _ _ _ % one underscore for each note in the lyric repeat > \unset lyricMelismaAlignment % reset alignment > > I was hoping to replace this with a function to make the copying and > pasting less of a problem. Ideally, I would have something like: > > lyr = \lyricmode { Word \LyRep #5 next word } > > And the LyRep command would use the commands above to draw the repeat sign > and add 5 skips. Problem is, I can't currently get close to making this > work. I can draw the symbol with a define-markup-command, but don't know > how to deal with the skips. > > Help appreciated.
Assuming 2.19.not-too-old: LyRep = #(define-music-function (n) (number?) #{ all of the above up to the underlines $@(make-list n #{ \lyricmode { _ } #}) \unset lyricMelismaAlignment #}) For 2.18, you'll need the typical parser location rap before n. -- David Kastrup _______________________________________________ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user