1 Commits

Author SHA1 Message Date
tux
ba50c4ea8d new engraver for spacing in chordlyrics 2025-06-17 09:01:40 +02:00
2 changed files with 9 additions and 32 deletions

View File

@@ -121,18 +121,16 @@ override-stanza =
#} #}
) )
#(define (stanza . stanzanumbers) stanza =
#(define-music-function (parser location stanzanumber) (number?)
#{ #{
\once \override StanzaNumber.layer = 23 % set this to signal that there is a real stanza and no repeat signs \once \override StanzaNumber.layer = 23 % set this to signal that there is a real stanza and no repeat signs
\applyContext \applyContext
#(lambda (context) #(lambda (context)
(let* ((stanzanumber-override (ly:assoc-get 'forced-spacing (ly:context-grob-definition context 'StanzaNumber) #f)) (let* ((stanzanumber (ly:assoc-get 'forced-spacing (ly:context-grob-definition context 'StanzaNumber) stanzanumber))
(stanza-style (ly:assoc-get 'style (ly:context-grob-definition context 'StanzaNumber))) (stanzastyle (ly:assoc-get 'style (ly:context-grob-definition context 'StanzaNumber)))
(stanza-format (lambda (stanzanumber) (format #f (if (eq? stanza-style 'roman) romanStanzaFormat stanzaFormat) stanzanumber)))) (formattedStanzaNumber (format #f (if (eq? stanzastyle 'roman) romanStanzaFormat stanzaFormat) stanzanumber)))
(ly:context-set-property! context 'stanza (ly:context-set-property! context 'stanza formattedStanzaNumber)))
(string-join (map stanza-format
(if stanzanumber-override (list stanzanumber-override) stanzanumbers))
", "))))
#} #}
) )
@@ -194,16 +192,12 @@ alt =
updown = updown =
#(define-music-function (parser location word) (string?) #(define-music-function (parser location word) (string?)
(let ((first-char (string-take word 1))
(rest (substring word 1 (string-length word))))
#{ #{
\lyricmode { \lyricmode {
\markup { \tag #'up { \markup { #(string-capitalize word) } }
\tag #'up #(string-append (string-capitalize first-char) rest) \tag #'down { \markup { #(string-downcase word) } }
\tag #'down #(string-append (string-downcase first-char) rest)
}
} }
#})) #})
dottedExtender = { dottedExtender = {
\override LyricExtender.style = #'dotted-line \override LyricExtender.style = #'dotted-line
@@ -237,19 +231,3 @@ cue =
(make-null-markup)) (make-null-markup))
} }
#}) #})
#(define-markup-command (ruf-style layout props text) (string?)
(interpret-markup layout props
(markup #:italic (string-append "(" text ")"))))
rufWithMarkup =
#(define-music-function (text) (markup?)
#{
\lyricmode {
\once \override StanzaNumber.font-series = #'normal
\once \override StanzaNumber.direction = 1
\set stanza = #text
}
#})
ruf =
#(define-music-function (text) (string?)
(rufWithMarkup (make-ruf-style-markup text)))

View File

@@ -434,7 +434,6 @@ Chord_lyrics_spacing_engraver =
\remove Tie_engraver \remove Tie_engraver
\remove Dynamic_engraver \remove Dynamic_engraver
\remove Note_heads_engraver \remove Note_heads_engraver
\remove Script_engraver
} }
\context { \context {
\NullVoice \NullVoice