have repeat signs as stanzas in lyrics
This commit is contained in:
parent
c4bfc17b89
commit
3b87476549
@ -101,10 +101,44 @@ romanStanza =
|
|||||||
|
|
||||||
stanza =
|
stanza =
|
||||||
#(define-music-function (parser location stanzanumber) (number?)
|
#(define-music-function (parser location stanzanumber) (number?)
|
||||||
(make-apply-context
|
#{
|
||||||
(lambda (context)
|
\once \override StanzaNumber.layer = 23 % set this to signal that there is a real stanza and no repeat signs
|
||||||
|
\applyContext
|
||||||
|
#(lambda (context)
|
||||||
(let* ((stanzastyle (ly:assoc-get 'style (ly:context-grob-definition context 'StanzaNumber)))
|
(let* ((stanzastyle (ly:assoc-get 'style (ly:context-grob-definition context 'StanzaNumber)))
|
||||||
(formattedStanzaNumber (format #f (if (eq? stanzastyle 'roman) romanStanzaFormat stanzaFormat) stanzanumber)))
|
(formattedStanzaNumber (format #f (if (eq? stanzastyle 'roman) romanStanzaFormat stanzaFormat) stanzanumber)))
|
||||||
(ly:context-set-property! context 'stanza formattedStanzaNumber)))))
|
(ly:context-set-property! context 'stanza formattedStanzaNumber)))
|
||||||
|
#}
|
||||||
|
)
|
||||||
|
|
||||||
ref = { \set stanza = \refString }
|
ref = {
|
||||||
|
\once \override StanzaNumber.layer = 23 % set this to signal that there is a real stanza and no repeat signs
|
||||||
|
\set stanza = \refString
|
||||||
|
}
|
||||||
|
|
||||||
|
% prints a repStart Sign as stanza if the tag 'repeats is kept.
|
||||||
|
% if there was a stanza already set by the stanza function with StanzaNumber.layer = 23 we set that also as stanza.
|
||||||
|
repStartWithTag = \lyricmode {
|
||||||
|
\tag #'repeats {
|
||||||
|
\applyContext
|
||||||
|
#(lambda (context)
|
||||||
|
(let ((lastStanza (ly:context-property context 'stanza))
|
||||||
|
(printLastStanza (= (ly:assoc-get 'layer (ly:context-grob-definition context 'StanzaNumber) 0) 23))
|
||||||
|
(stanzaFontSeries (ly:assoc-get 'font-series (ly:context-grob-definition context 'StanzaNumber) 'normal)))
|
||||||
|
(ly:context-set-property! context 'stanza
|
||||||
|
(make-concat-markup
|
||||||
|
(if printLastStanza
|
||||||
|
(list (make-override-markup `(font-series . ,stanzaFontSeries) lastStanza) (make-hspace-markup 1) repStart)
|
||||||
|
(list repStart)
|
||||||
|
)))))
|
||||||
|
\once \override StanzaNumber.font-series = #'normal
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
repStopWithTag = \lyricmode {
|
||||||
|
\tag #'repeats {
|
||||||
|
\once \override StanzaNumber.font-series = #'normal
|
||||||
|
\once \override StanzaNumber.direction = 1
|
||||||
|
\set stanza = \markup { \repStop }
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user