1 Commits

Author SHA1 Message Date
tux
017dc38471 new engraver for spacing in chordlyrics 2025-06-15 14:03:13 +02:00
30 changed files with 50 additions and 73 deletions

View File

@@ -1,9 +1,3 @@
#(define include_dir_not_added? (if (defined? 'include_dir_not_added?) include_dir_not_added? #t))
#(if include_dir_not_added?
(let* ((common-include-dir (dirname (dirname (dirname (current-filename))))))
(ly:parser-append-to-include-path common-include-dir)
(set! include_dir_not_added? #f)))
#(define noStandaloneOutput (if (defined? 'noStandaloneOutput) noStandaloneOutput #f)) #(define noStandaloneOutput (if (defined? 'noStandaloneOutput) noStandaloneOutput #f))
#(define windows? (string-prefix-ci? "windows" (utsname:sysname (uname)))) #(define windows? (string-prefix-ci? "windows" (utsname:sysname (uname))))
@@ -25,15 +19,15 @@
#(define AUTHOR_DATA (if (defined? 'AUTHOR_DATA) AUTHOR_DATA (parse-yml-file "../../lilypond-song-includes/data/authors.yml"))) #(define AUTHOR_DATA (if (defined? 'AUTHOR_DATA) AUTHOR_DATA (parse-yml-file "../../lilypond-song-includes/data/authors.yml")))
#(define SONG_DATA (if (defined? 'SONG_DATA) SONG_DATA (parse-yml-file "../../lilypond-song-includes/data/songs.yml"))) #(define SONG_DATA (if (defined? 'SONG_DATA) SONG_DATA (parse-yml-file "../../lilypond-song-includes/data/songs.yml")))
\include "basic_format_and_style_settings.ily" \include "basic_format_and_style_settings.ly"
\include "eps_file_from_song_dir.ily" \include "eps_file_from_song_dir.ly"
\include "title_with_category_images.ily" \include "title_with_category_images.ly"
\include "chord_settings.ily" \include "chord_settings.ly"
\include "transposition.ily" \include "transposition.ly"
\include "verses_with_chords.ily" \include "verses_with_chords.ly"
\include "arrows_in_scores.ily" \include "arrows_in_scores.ly"
\include "swing_style.ily" \include "swing_style.ly"
\include "inline_score.ily" \include "inline_score.ly"
\include "custom_indentation.ily" \include "custom_indentation.ily"
\include "include_from_song.ily" \include "include_from_song.ily"

View File

@@ -1,10 +1,10 @@
\language "deutsch" \language "deutsch"
\include "default_style.ily" \include "default_style.ly"
\include "default_songinfo_style.ily" \include "default_songinfo_style.ly"
\include "footer_with_songinfo.ily" \include "footer_with_songinfo.ly"
\include #(if (defined? 'customStyleOverridesFile) customStyleOverridesFile "../void.ily") \include #(if (defined? 'customStyleOverridesFile) customStyleOverridesFile "void.ly")
#(set-default-paper-size songFormatAndSize) #(set-default-paper-size songFormatAndSize)
#(set-global-staff-size globalSize) #(set-global-staff-size globalSize)
@@ -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

@@ -4,4 +4,4 @@ HEADER = \bookpart {
\basicSongInfo \basicSongInfo
} }
} }
\include #(if noDefaultOutput "../private_includes/void.ily" "layout_bottom.ily") \include #(if noDefaultOutput "void.ly" "standalone_output.ly")

View File

@@ -51,7 +51,7 @@
(lambda (paragraph) (lambda (paragraph)
(make-wordwrap-internal-markup-list #t (make-wordwrap-internal-markup-list #t
#{ \markuplist { $(ly:parser-include-string paragraph) } #})) #{ \markuplist { $(ly:parser-include-string paragraph) } #}))
(ly:regex-split (ly:make-regex "\n[ \t\n]*\n[ \t\n]*") (string-append prefix text)))) (ly:regex-split (ly:make-regex "\n[ \t\n]*\n[ \t\n]*") text)))
'())))) '()))))
(stack-lines DOWN 0.0 (chain-assoc-get 'baseline-skip props) (stack-lines DOWN 0.0 (chain-assoc-get 'baseline-skip props)
(interpret-markup-list layout props (interpret-markup-list layout props

View File

@@ -1,5 +1,6 @@
\version "2.25.8"
#(ly:set-option 'relative-includes #t) #(ly:set-option 'relative-includes #t)
#(define noDefaultOutput #t) #(define noDefaultOutput #t)
\include "../private_includes/base/all.ily" \include "all_base_includes.ly"

7
include_from_song.ily Normal file
View File

@@ -0,0 +1,7 @@
includeFromSong =
#(define-void-function (filename) (string?)
(let ((noDefaultOutputBackup noDefaultOutput))
(set! noDefaultOutput #t)
(ly:parser-parse-string (ly:parser-clone)
(ly:format "\\include \"~a\"" filename))
(set! noDefaultOutput noDefaultOutputBackup)))

View File

@@ -1,15 +0,0 @@
includeFromSong =
#(define-void-function (filename) (string?)
(let ((noDefaultOutputBackup noDefaultOutput))
(set! noDefaultOutput #t)
(ly:parser-parse-string (ly:parser-clone)
(ly:format "\\include \"~a\""
(string-append
(dirname (dirname (dirname (dirname (current-filename)))))
file-name-separator-string
"lilypond-song-includes"
file-name-separator-string
"liedbausteine"
file-name-separator-string
filename)))
(set! noDefaultOutput noDefaultOutputBackup)))

View File

@@ -1,3 +0,0 @@
\include "../private_includes/book/book_include.ily"
\include "../private_includes/book/toc_include.ily"
\include "../private_includes/book/appendix.ily"

View File

@@ -2,4 +2,4 @@
#(define noDefaultOutput (if (defined? 'noDefaultOutput) noDefaultOutput #f)) #(define noDefaultOutput (if (defined? 'noDefaultOutput) noDefaultOutput #f))
\include #(if noDefaultOutput "../private_includes/void.ily" "../private_includes/base/all.ily") \include #(if noDefaultOutput "void.ly" "all_base_includes.ly")

16
styles.ly Normal file
View File

@@ -0,0 +1,16 @@
#(define bookStyle
(if (not (defined? 'bookStyle))
#f
bookStyle))
#(define songStyle
(if (not (defined? 'songStyle))
(if (not (defined? 'defaultSongStyle)) 'default defaultSongStyle)
songStyle))
#(if (not (boolean? bookStyle))
(set! songStyle bookStyle))
#(define (bock-style layout props)
"Whether we have bockstyle or not"
(eq? songStyle 'bock))

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