Compare commits
11 Commits
e17c544763
...
set-spacin
Author | SHA1 | Date | |
---|---|---|---|
b4690f63bc | |||
958efca6aa | |||
81a5676965 | |||
5ee1a7b6be | |||
162d32c53d | |||
a3c3a67b33 | |||
09d3bb7fa1 | |||
bab581042a | |||
3b87476549 | |||
c4bfc17b89 | |||
e388559f23 |
@@ -61,6 +61,11 @@ generalLayout = \layout {
|
||||
\Voice
|
||||
% ich will lines breaken wie ich will!
|
||||
\remove "Forbid_line_break_engraver"
|
||||
\override NoteHead.layer = 2
|
||||
\override Dots.layer = 2
|
||||
\override Stem.layer = 2
|
||||
\override Flag.layer = 2
|
||||
\override Beam.layer = 2
|
||||
}
|
||||
}
|
||||
|
||||
@@ -72,29 +77,74 @@ textp = \lyricmode { \markup { \raise #1 \musicglyph #"rests.3" } }
|
||||
% zweite Stimme alles grau
|
||||
secondVoiceStyle = {
|
||||
\override NoteHead.color = #grey
|
||||
\override Dots.color = #grey
|
||||
\override Stem.color = #grey
|
||||
\override Flag.color = #grey
|
||||
\override Beam.color = #grey
|
||||
\override NoteHead.layer = 1
|
||||
\override Dots.layer = 1
|
||||
\override Stem.layer = 1
|
||||
\override Flag.layer = 1
|
||||
\override Beam.layer = 1
|
||||
}
|
||||
|
||||
firstVoiceStyle = {
|
||||
\override NoteHead.color = #black
|
||||
\override Dots.color = #black
|
||||
\override Stem.color = #black
|
||||
\override Flag.color = #black
|
||||
\override Beam.color = #black
|
||||
}
|
||||
|
||||
% einzelne Noten innerhalb von \secondVoiceStyle mit schwarzem statt grauem Kopf
|
||||
% Deprecated: einzelne Noten innerhalb von \secondVoiceStyle mit schwarzem statt grauem Kopf
|
||||
schwarzkopf =
|
||||
#(define-music-function (parser location noten) (ly:music?)
|
||||
#{
|
||||
\revert NoteHead.color
|
||||
$noten
|
||||
\override NoteHead.color = #grey
|
||||
#})
|
||||
(begin (ly:warning "\\schwarzkopf brauchts nicht mehr, das kann ersatzlos weg!") noten))
|
||||
|
||||
romanStanza =
|
||||
#(define-music-function (parser location) ()
|
||||
#{ \override StanzaNumber.style = #'roman #})
|
||||
|
||||
stanza =
|
||||
#(define-music-function (parser location stanzanumber) (number?)
|
||||
#{ \set stanza = #(ly:format stanzaFormat stanzanumber) #})
|
||||
#(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
|
||||
\applyContext
|
||||
#(lambda (context)
|
||||
(let* ((stanzastyle (ly:assoc-get 'style (ly:context-grob-definition context 'StanzaNumber)))
|
||||
(formattedStanzaNumber (format #f (if (eq? stanzastyle 'roman) romanStanzaFormat stanzaFormat) stanzanumber)))
|
||||
(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 }
|
||||
}
|
||||
}
|
@@ -38,6 +38,32 @@ shiftChords = #(define-music-function (parser location xshift chords) (number? l
|
||||
$chords
|
||||
#})
|
||||
|
||||
altChord = #(define-music-function (parser location mainchord altchord) (ly:music? ly:music?)
|
||||
(define (chord-namer in-pitches bass inversion context)
|
||||
#{
|
||||
\markup {
|
||||
\translate #'(-0.5 . 0)
|
||||
\score {
|
||||
\chords { #mainchord \klamm #altchord }
|
||||
\layout {
|
||||
\LAYOUT
|
||||
\context {
|
||||
\ChordNames
|
||||
\override ChordName.extra-spacing-width = #'(0 . 0.3)
|
||||
}
|
||||
\context {
|
||||
\Score
|
||||
\override SpacingSpanner.spacing-increment = 0
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
#})
|
||||
#{
|
||||
\once \set chordNameFunction = #chord-namer
|
||||
#mainchord
|
||||
#})
|
||||
|
||||
% kleine Mollakkorde und Alteration ausgeschrieben
|
||||
#(define (note-name->german-markup-nosym pitch lowercase?)
|
||||
(define (pitch-alteration-semitones pitch) (inexact->exact (round (* (ly:pitch-alteration pitch) 2))))
|
||||
@@ -98,15 +124,6 @@ generalLayout = \layout {
|
||||
}
|
||||
}
|
||||
|
||||
#(define-public (custom-lyric-text::print grob)
|
||||
"Allow interpretation of tildes as lyric tieing marks."
|
||||
;; See also similar code in Lyric_performer.
|
||||
(let ((text (ly:grob-property grob 'text)))
|
||||
|
||||
(grob-interpret-markup grob (if (string? text)
|
||||
(make-pad-right-markup -0.1 (make-tied-lyric-markup text))
|
||||
text))))
|
||||
|
||||
% Akkord mit Bunddiagramm anzeigen
|
||||
#(define-markup-command (fret-chord layout props fret chord) (string? string?)
|
||||
(interpret-markup layout props
|
||||
|
@@ -2,6 +2,7 @@ songFormatAndSize = "a5"
|
||||
songMargin = 5
|
||||
songInfoFontSize = 0
|
||||
songInfoLineWidthFraction = 0.9
|
||||
songTitleSize = 6
|
||||
songTitleFont = "LilyPond Sans"
|
||||
songChordFont = "LilyPond Sans"
|
||||
songLyricFont = "LilyPond Sans"
|
||||
@@ -15,6 +16,7 @@ songTocColumns = 3
|
||||
globalSize = 15
|
||||
lyricSize = 1.6
|
||||
stanzaFormat = "~a."
|
||||
romanStanzaFormat = "~@r."
|
||||
refString = "Ref.:"
|
||||
% hübsche Wiederholungszeichen für den Liedtext
|
||||
repStart = "𝄆"
|
||||
|
@@ -104,7 +104,10 @@
|
||||
)
|
||||
(if (and (equal? poetIds composerIds) (null? translatorIds) (null? versePoetData) (null? verseComposerData) (null? voiceComposerData) (null? compositionIds) (null? bridgeIds) (null? interludeIds))
|
||||
(list
|
||||
(render-contribution-group (ly:output-def-lookup layout 'poetAndComposerEqualPrefix) poetIds)
|
||||
(join-present (list
|
||||
(render-contribution-group (ly:output-def-lookup layout 'poetAndComposerEqualPrefix) poetIds)
|
||||
(if (equal? year_text year_melody) year_text (join-present (list year_text year_melody) "/"))
|
||||
) ", ")
|
||||
#f)
|
||||
(list
|
||||
(if (and (null? poetIds) (null? versePoetData) (null? translatorIds)) #f
|
||||
|
@@ -4,7 +4,7 @@
|
||||
\markup {
|
||||
\override #'(baseline-skip . 3.5)
|
||||
\center-column {
|
||||
\override #`(font-name . ,songTitleFont) { \fontsize #6 \fromproperty #'header:title }
|
||||
\override #`(font-name . ,songTitleFont) { \fontsize #songTitleSize \fromproperty #'header:title }
|
||||
\large \bold \fromproperty #'header:subtitle
|
||||
\smaller \bold \fromproperty #'header:subsubtitle
|
||||
}
|
||||
|
@@ -167,11 +167,11 @@
|
||||
(reverse (map (lambda (m)
|
||||
(make-size-box-to-box-markup #f #t m target-size-markup))
|
||||
(cons
|
||||
(make-fill-with-pattern-markup 1 RIGHT "." (car revlist) page)
|
||||
(make-with-link-symbol-ref-markup 'index:label (make-fill-with-pattern-markup 1 RIGHT "." (car revlist) page))
|
||||
(cdr revlist)))))))))
|
||||
|
||||
\paper {
|
||||
indexItemMarkup = \markup \with-link-symbol-ref #'index:label {
|
||||
indexItemMarkup = \markup {
|
||||
\index-item-with-pattern
|
||||
}
|
||||
indexSectionMarkup = \markup \override #'(baseline-skip . 1.5) \left-column {
|
||||
|
@@ -227,9 +227,18 @@
|
||||
#:properties ((baseline-skip))
|
||||
(stack-stencils Y DOWN baseline-skip
|
||||
(map
|
||||
(lambda (line) (ly:make-stencil (ly:stencil-expr line) (ly:stencil-extent line X) `(0 . ,reference-height)))
|
||||
(lambda (line) (ly:make-stencil (ly:stencil-expr line) (ly:stencil-extent line X) `(,(/ reference-height -2.0) . ,(/ reference-height 2.0))))
|
||||
(interpret-markup-list layout props lines))))
|
||||
|
||||
#(define-public (custom-lyric-text::print grob)
|
||||
"Allow interpretation of tildes as lyric tieing marks."
|
||||
;; See also similar code in Lyric_performer.
|
||||
(let ((text (ly:grob-property grob 'text)))
|
||||
|
||||
(grob-interpret-markup grob (if (string? text)
|
||||
(make-pad-right-markup -0.1 (make-tied-lyric-markup text))
|
||||
text))))
|
||||
|
||||
#(define-markup-command (chordlyrics layout props lyrics) (ly:music?)
|
||||
#:properties ((verse-chords #{#})
|
||||
(verse-reference-voice #{#})
|
||||
@@ -244,21 +253,17 @@
|
||||
#{
|
||||
\markup {
|
||||
\override #`(baseline-skip . ,intraverse-vspace)
|
||||
\pad-left #-5
|
||||
\score-equal-height #verse-line-height \score-lines {
|
||||
\transposable #transposition
|
||||
<<
|
||||
\new Devnull { #verse-break-voice }
|
||||
\new NullVoice = "dummyvoice" { #verse-reference-voice }
|
||||
#(music-clone verse-chords)
|
||||
\new NullVoice { #verse-reference-voice }
|
||||
\addlyrics { #lyrics }
|
||||
\new Lyrics \lyricsto "dummyvoice" { #lyrics }
|
||||
>>
|
||||
\layout {
|
||||
\verselayout
|
||||
\context {
|
||||
\Staff
|
||||
\override LeftEdge.space-alist.first-note = #'(fixed-space . 5.0)
|
||||
}
|
||||
ragged-right = ##t
|
||||
\context {
|
||||
\Lyrics
|
||||
\override VerticalAxisGroup.nonstaff-relatedstaff-spacing.basic-distance = #verse-text-chord-distance
|
||||
@@ -268,9 +273,15 @@
|
||||
\override LyricSpace.minimum-distance = 0.8
|
||||
\override LyricText.stencil = #custom-lyric-text::print
|
||||
}
|
||||
\context {
|
||||
\ChordNames
|
||||
\override VerticalAxisGroup.staff-affinity = ##f
|
||||
\override ChordName.extra-spacing-width = #'(-0.1 . 0.1)
|
||||
}
|
||||
\context {
|
||||
\Score
|
||||
\override PaperColumn.keep-inside-line = ##f
|
||||
% \override SpacingSpanner.strict-note-spacing = ##t
|
||||
\override SpacingSpanner.uniform-stretching = ##t
|
||||
\override SpacingSpanner.spacing-increment = 0
|
||||
\remove Bar_number_engraver
|
||||
@@ -283,7 +294,10 @@
|
||||
\remove Staff_symbol_engraver
|
||||
\remove Clef_engraver
|
||||
\remove Time_signature_engraver
|
||||
\remove Bar_engraver
|
||||
\remove Separating_line_group_engraver
|
||||
\omit KeySignature
|
||||
\omit KeyCancellation
|
||||
}
|
||||
\context {
|
||||
\Voice
|
||||
@@ -296,6 +310,13 @@
|
||||
\remove Dynamic_engraver
|
||||
\remove Note_heads_engraver
|
||||
}
|
||||
\context {
|
||||
\NullVoice
|
||||
\consists Rest_engraver
|
||||
\omit Rest
|
||||
% \undo \omit NoteHead
|
||||
% \hide NoteHead
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user