Compare commits
1 Commits
main
...
4ca3047901
| Author | SHA1 | Date | |
|---|---|---|---|
| 4ca3047901 |
@@ -134,23 +134,18 @@ override-stanza =
|
|||||||
#}
|
#}
|
||||||
)
|
)
|
||||||
|
|
||||||
#(define (handle-stanza-numbers context numbers number-formater)
|
|
||||||
(let* ((stanzanumbers (ly:assoc-get 'custom-stanzanumber-override (ly:assoc-get 'details (ly:context-grob-definition context 'StanzaNumber) '()) numbers))
|
|
||||||
(stanza-style (ly:assoc-get 'style (ly:context-grob-definition context 'StanzaNumber)))
|
|
||||||
(roman-format (lambda (stanzanumber) (format #f "~@r" stanzanumber))))
|
|
||||||
(ly:context-set-property! context 'stanza
|
|
||||||
(number-formater
|
|
||||||
(if (eq? stanza-style 'roman)
|
|
||||||
(map roman-format stanzanumbers)
|
|
||||||
stanzanumbers)))))
|
|
||||||
|
|
||||||
#(define (stanza . stanzanumbers)
|
#(define (stanza . stanzanumbers)
|
||||||
#{
|
#{
|
||||||
\once \override StanzaNumber.details.custom-realstanza = ##t % set this to signal that there is a real stanza and no repeat signs
|
\once \override StanzaNumber.details.custom-realstanza = ##t % set this to signal that there is a real stanza and no repeat signs
|
||||||
\applyContext
|
\applyContext
|
||||||
#(lambda (context)
|
#(lambda (context)
|
||||||
(handle-stanza-numbers context stanzanumbers
|
(let* ((stanzanumbers-override (ly:assoc-get 'custom-stanzanumber-override (ly:assoc-get 'details (ly:context-grob-definition context 'StanzaNumber) '()) #f))
|
||||||
(lambda (numbers) (string-join (map (lambda (n) (format #f stanzaFormat n)) numbers) ", "))))
|
(stanza-style (ly:assoc-get 'style (ly:context-grob-definition context 'StanzaNumber)))
|
||||||
|
(stanza-format (lambda (stanzanumber) (format #f (if (eq? stanza-style 'roman) romanStanzaFormat stanzaFormat) stanzanumber))))
|
||||||
|
(ly:context-set-property! context 'stanza
|
||||||
|
(string-join (map stanza-format
|
||||||
|
(if stanzanumbers-override stanzanumbers-override stanzanumbers))
|
||||||
|
", "))))
|
||||||
#}
|
#}
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -158,14 +153,7 @@ ref =
|
|||||||
#(define-music-function (stanzanumbers lyrics) ((number-list? (list)) ly:music?)
|
#(define-music-function (stanzanumbers lyrics) ((number-list? (list)) ly:music?)
|
||||||
#{ \lyricmode {
|
#{ \lyricmode {
|
||||||
\once \override StanzaNumber.details.custom-realstanza = ##t % set this to signal that there is a real stanza and no repeat signs
|
\once \override StanzaNumber.details.custom-realstanza = ##t % set this to signal that there is a real stanza and no repeat signs
|
||||||
\applyContext
|
\set stanza = #(make-on-the-fly-markup (lambda (layout props m) ((ly:output-def-lookup layout 'refMarkupFormatter) layout props stanzanumbers)) (make-null-markup))
|
||||||
#(lambda (context)
|
|
||||||
(handle-stanza-numbers context stanzanumbers
|
|
||||||
(lambda (numbers)
|
|
||||||
(make-on-the-fly-markup
|
|
||||||
(lambda (layout props m)
|
|
||||||
((ly:output-def-lookup layout 'refMarkupFormatter) layout props numbers))
|
|
||||||
(make-null-markup)))))
|
|
||||||
#lyrics
|
#lyrics
|
||||||
}
|
}
|
||||||
#}
|
#}
|
||||||
|
|||||||
@@ -16,6 +16,7 @@ songTocColumns = 3
|
|||||||
globalSize = 15
|
globalSize = 15
|
||||||
lyricSize = 1.6
|
lyricSize = 1.6
|
||||||
stanzaFormat = "~a."
|
stanzaFormat = "~a."
|
||||||
|
romanStanzaFormat = "~@r."
|
||||||
refString = "Ref.:"
|
refString = "Ref.:"
|
||||||
refStringWithNumbers = "Ref. ~a:"
|
refStringWithNumbers = "Ref. ~a:"
|
||||||
% hübsche Wiederholungszeichen für den Liedtext
|
% hübsche Wiederholungszeichen für den Liedtext
|
||||||
|
|||||||
@@ -60,20 +60,19 @@
|
|||||||
|
|
||||||
% Text über Text mittig darstellen
|
% Text über Text mittig darstellen
|
||||||
#(define-markup-command (textup layout props text uptext) (markup? markup?)
|
#(define-markup-command (textup layout props text uptext) (markup? markup?)
|
||||||
#:properties ((verselayout generalLayout)
|
|
||||||
(verse-text-chord-distance songTextChordDistance))
|
|
||||||
"Markup über Text mittig darstellen."
|
"Markup über Text mittig darstellen."
|
||||||
|
(let ((verselayout (chain-assoc-get 'verselayout props generalLayout)))
|
||||||
(interpret-markup layout props
|
(interpret-markup layout props
|
||||||
#{\markup {
|
#{\markup {
|
||||||
\size-box-to-box-style-dependent ##t ##f
|
\size-box-to-box-style-dependent ##t ##f
|
||||||
\general-align #X #LEFT \override #`(direction . ,UP) \override #'(baseline-skip . 1) \dir-column \chord-alignment-style-dependent {
|
\general-align #X #LEFT \override #`(direction . ,UP) \override #'(baseline-skip . 1.0) \dir-column \chord-alignment-style-dependent {
|
||||||
\pad-to-box #'(0 . 0) #`(0 . ,(- verse-text-chord-distance 0.8)) { #text }
|
\pad-to-box #'(0 . 0) #'(0 . 2.0) { #text }
|
||||||
\size-box-to-box ##f ##t #uptext \score { \chords { g4:m a } \layout { $verselayout } }
|
\size-box-to-box ##f ##t #uptext \score { \chords { g4:m a } \layout { \verselayout } }
|
||||||
}
|
}
|
||||||
#text
|
#text
|
||||||
}
|
}
|
||||||
#}
|
#}
|
||||||
))
|
)))
|
||||||
|
|
||||||
#(define-markup-command (anchor-x-between layout props arga argb)
|
#(define-markup-command (anchor-x-between layout props arga argb)
|
||||||
(markup? markup?)
|
(markup? markup?)
|
||||||
@@ -83,15 +82,16 @@
|
|||||||
(ly:stencil-aligned-to m X (- (/ (* la 2) l) 1))
|
(ly:stencil-aligned-to m X (- (/ (* la 2) l) 1))
|
||||||
))
|
))
|
||||||
|
|
||||||
#(define-markup-command (stanza-raw layout props arg) (string-or-music?)
|
#(define-markup-command (stanza-raw layout props arg)
|
||||||
#:properties ((verselayout generalLayout))
|
(string-or-music?)
|
||||||
|
(let ((verselayout (chain-assoc-get 'verselayout props generalLayout)))
|
||||||
(interpret-markup layout props
|
(interpret-markup layout props
|
||||||
(if (and (string? arg) (string-null? arg))
|
(if (and (string? arg) (string-null? arg))
|
||||||
" "
|
" "
|
||||||
#{\markup
|
#{\markup
|
||||||
\score { \new Lyrics { \lyricmode { #(if (ly:music? arg) arg #{ \set stanza = #arg #}) "" } } \layout { $verselayout } }
|
\score { \new Lyrics { \lyricmode { #(if (ly:music? arg) arg #{ \set stanza = #arg #}) "" } } \layout { \verselayout } }
|
||||||
#}
|
#}
|
||||||
)))
|
))))
|
||||||
|
|
||||||
#(define-markup-command (stanza layout props arg)
|
#(define-markup-command (stanza layout props arg)
|
||||||
(string-or-music?)
|
(string-or-music?)
|
||||||
@@ -141,7 +141,7 @@
|
|||||||
(make-wrap-newline-markup
|
(make-wrap-newline-markup
|
||||||
(ly:regex-replace (ly:make-regex "\\(( *)([^,()]*)( *),([^)]*)\\)")
|
(ly:regex-replace (ly:make-regex "\\(( *)([^,()]*)( *),([^)]*)\\)")
|
||||||
(ly:regex-replace (ly:make-regex "(([^ \n]*\\([^()]*,[^()]+\\)[^ \n(]*)+)") (handle-custom-newlines custom-verse-breaks verse) " \\concat { " 1 " } ")
|
(ly:regex-replace (ly:make-regex "(([^ \n]*\\([^()]*,[^()]+\\)[^ \n(]*)+)") (handle-custom-newlines custom-verse-breaks verse) " \\concat { " 1 " } ")
|
||||||
"\\textup \\line { \"" 1 "\" " 2 " \"" 3 "\" } \\score { " transp " \\chords { s4 " 4 " } \\layout { $verselayout } }")
|
"\\textup \\line { \"" 1 "\" " 2 " \"" 3 "\" } \\score { " transp " \\chords { s4 " 4 " } \\layout { \\verselayout } }")
|
||||||
)
|
)
|
||||||
))))
|
))))
|
||||||
|
|
||||||
@@ -302,10 +302,9 @@ Chord_lyrics_spacing_engraver =
|
|||||||
(ly:grob-set-property! grob 'extra-spacing-width
|
(ly:grob-set-property! grob 'extra-spacing-width
|
||||||
(cons (- chord-width-since-last-lyric) (cdr (ly:grob-property grob 'extra-spacing-width '(0 . 0)))))
|
(cons (- chord-width-since-last-lyric) (cdr (ly:grob-property grob 'extra-spacing-width '(0 . 0)))))
|
||||||
(if last-printed-chord
|
(if last-printed-chord
|
||||||
(let ((gap-for-starting-rest 2.0))
|
(begin
|
||||||
(if stanza (ly:grob-set-property! stanza 'padding (+ 1 gap-for-starting-rest)))
|
(if stanza (ly:grob-set-property! stanza 'padding chord-width-since-last-lyric))
|
||||||
(ly:grob-set-parent! grob X last-printed-chord)
|
(place-at-right-edge grob last-printed-chord 0)
|
||||||
(ly:grob-set-property! grob 'X-offset gap-for-starting-rest)
|
|
||||||
)))
|
)))
|
||||||
)
|
)
|
||||||
(set! last-lyric-syllable grob)
|
(set! last-lyric-syllable grob)
|
||||||
@@ -366,7 +365,10 @@ Chord_lyrics_spacing_engraver =
|
|||||||
\new Lyrics \lyricsto "dummyvoice" { #lyrics }
|
\new Lyrics \lyricsto "dummyvoice" { #lyrics }
|
||||||
>>
|
>>
|
||||||
\layout {
|
\layout {
|
||||||
$verselayout
|
\verselayout
|
||||||
|
#(let
|
||||||
|
((custom-size (ly:output-def-lookup verselayout 'size #f)))
|
||||||
|
(if custom-size (layout-set-staff-size custom-size)))
|
||||||
ragged-right = ##t
|
ragged-right = ##t
|
||||||
\context {
|
\context {
|
||||||
\Lyrics
|
\Lyrics
|
||||||
|
|||||||
@@ -1,12 +1,5 @@
|
|||||||
MUSIC = { \transposable #TRANSPOSITION \MUSIC }
|
MUSIC = { \transposable #TRANSPOSITION \MUSIC }
|
||||||
|
|
||||||
LAYOUT = \layout {
|
|
||||||
\LAYOUT
|
|
||||||
#(let
|
|
||||||
((custom-size (ly:output-def-lookup LAYOUT 'size #f)))
|
|
||||||
(if custom-size (layout-set-staff-size custom-size)))
|
|
||||||
}
|
|
||||||
|
|
||||||
verselayout = \layout {
|
verselayout = \layout {
|
||||||
\LAYOUT
|
\LAYOUT
|
||||||
\context {
|
\context {
|
||||||
@@ -15,6 +8,13 @@ verselayout = \layout {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
LAYOUT = \layout {
|
||||||
|
\LAYOUT
|
||||||
|
#(let
|
||||||
|
((custom-size (ly:output-def-lookup LAYOUT 'size #f)))
|
||||||
|
(if custom-size (layout-set-staff-size custom-size)))
|
||||||
|
}
|
||||||
|
|
||||||
TEXT = \markuplist {
|
TEXT = \markuplist {
|
||||||
\override #`(transposition . ,TRANSPOSITION)
|
\override #`(transposition . ,TRANSPOSITION)
|
||||||
\override #`(verselayout . ,verselayout)
|
\override #`(verselayout . ,verselayout)
|
||||||
|
|||||||
Reference in New Issue
Block a user