Thema mit einer Variation

Zur Navigation springen Zur Suche springen
\version "2.19.52"
\language "deutsch"

tra=\markup { \dynamic p \normal-text \italic "tranquillo" }
ptran = #(make-dynamic-script tra)
at=\markup { \normal-text \italic "a tempo" }
ate=#(make-dynamic-script at)
rrit=\markup { \dynamic pp \normal-text \italic "ritenuto" }
pprit = #(make-dynamic-script rrit)
po=\markup { \normal-text \italic "poco rit." }
pori=#(make-dynamic-script po)


pplegr=\markup { \dynamic p \normal-text \italic "snd." \dynamic mf }
psndf = #(make-dynamic-script pplegr)

Dynb = {
  %\set alignBelowContext ="Discant"
  \partial 2
  s2\psndf s1*7
}

myTitel = "Thema mit einer Variation G-Dur"
mycomp="C Gurlitt"


\layout {
  \context {
    \Voice
    beamExceptions = #'()
    \override BreathingSign.text =
    \markup { \musicglyph #"scripts.lvarcomma" }
    \override Stem.neutral-direction = #down
    \override Script.outside-staff-priority = #'()
    \override Script.padding = #1
    \override Tie.thickness = #1
    \override PhrasingSlur.thickness = #3
    \override Rest.voiced-position = #0
    \override MultiMeasureRest.expand-limit = #3
  }
  \context {
    \Staff
    printPartCombineTexts = ##f
    beamExceptions = #'()
    \override BreathingSign.text =
    \markup { \musicglyph #"scripts.lvarcomma" }
    \override InstrumentName.font-features = #'("smcp")
  }
  \context {
    \PianoStaff
    \override VerticalAxisGroup.staff-staff-spacing.basic-distance = #13
  }
  \context {
    \Score
    \override VerticalAxisGroup.remove-first = ##t
    skipBars = ##f
    \override MetronomeMark.font-size = #1
    \override MetronomeMark.font-shape = #'caps
    \override BarLine.thick-thickness = 5
    barNumberVisibility = #all-bar-numbers-visible
    \override Timing.beamExceptions = #'()
    \override BarNumber.color = #(rgb-color 0.7 0.7 0.7)
    \override BarNumber.layer = #-200
    \override BarNumber.outside-staff-priority =#'()
    \override BarNumber.padding = #1
    \override BarNumber.font-size = #-1
    \override BarNumber.font-series = #'bold
    \override BarNumber.self-alignment-X = #0
    \override BarNumber.break-visibility = #end-of-line-invisible
  }
}

RHg= \relative c' {
  \time 2/4
  \key g \major
  \slurUp
  \tempo "Moderato"
  \override DynamicText.self-alignment-X = #-1
  \override DynamicText.X-offset = #-1
  < d-1 g-3 h-5 >4-. ( q-. < d-1 fis-2 a-4 >2-- )
  < e-1 a-3 c-5 >4 ( q <e-1 g-2 h-4>2 )
  < g-1 c-3 e-5>4-. ( q-. < g-1 h-2 d-4 >-. < f-1 h-3 d-5>-.
  < e-1 a-2 c-4 >-. < e-1 a-3 c-5 >4-.\pori ) < dis-1 fis!-2 h-4>2-- %\break
  < d!-1 g-3 h-5>4-.\ate ( q-. < d-1 fis-2 a-4>2 )
  < e a c >4-. ( q-. < e g h >2-- )
  < g c e>4-. ( q-. < g-1 h-2 d-4 >-. < f h d>-.
  < e-1 a-2 c-4 >-. < c-1 d-2 fis-4 >4-. < h d g >2\fermata )
  \bar "||"
}

LHg = \relative c {
  \clef bass
  \key g \major
  \set fingeringOrientations = #'(left) %% für Akkorde!
  \mergeDifferentlyHeadedOn
  \mergeDifferentlyDottedOn
  \override Fingering.direction = #DOWN  %% für Einzelnoten!
  \override Fingering.padding = #0.2
  %\override Fingering.staff-padding = #'()
  \override Fingering.avoid-slur = #'inside
  %\override Slur.direction = #UP
  g4-.-5 ( h-.-3 d2-1-- )
  a4-5-. ( c-3-. e2 )
  c4-.-5 ( e-.-3 g-1-. gis-2-. a-1-. a,-5-. ) h2-4--
  g4-.-5 ( h-.-3 d2-1-- )
  a4-5-. ( c-3-. e2 )
  c4-.-5 ( e-.-3 g-1-. gis-2-. a-1-. d,-5-. ) g2-4--
}

RHv= \relative c'' {
  \time 2/4
  \key g \major
  \override DynamicText.self-alignment-X = #-1
  \override DynamicText.X-offset = #-1
  \slurUp
  \tempo "Moderato"
  \omit TupletNumber
  \omit TupletBracket
  \tuplet 3/2 {
    h8-5\ptran g-3 d-1 h' g d
    a'-4 fis-2 d-1 a' fis d
    c'-5 a-3 e-1 c' a e
    h'-4 g-2 e-1 h' g e
    e'-5\< c-3 g e' c g\!
    d'-4 h-2 g-1 d'-5 h-3 f-1
    c'-4\> a-2 e-1 c'-5 a-3 e-1\!
    h'-5\pori fis-2 dis-1 h' fis dis
    h'8-5 g d h' g d
    a'-4 fis d a' fis d
    c'-5 a e c' a e
    h'-4 g e h' g e
    e'-5 c g e' c g
    d'-4 h g d'-5 h f
    c'-4\pprit a e fis-4 d c

  }
  < h d g >2\arpeggio\fermata
  \bar "|."
}

LHv = \relative c {
  \clef bass
  \key g \major
  \set fingeringOrientations = #'(left) %% für Akkorde!
  \mergeDifferentlyHeadedOn
  \mergeDifferentlyDottedOn
  \override Fingering.direction = #DOWN  %% für Einzelnoten!
  \override Fingering.padding = #0.2
  %\override Fingering.staff-padding = #'()
  \override Fingering.avoid-slur = #'inside
  %\override Slur.direction = #UP
  g4-5 ( h-3 d2-1 )
  a4-5 ( c-3 e2 )
  c4-5 ( e-3 g-1 gis-2 a-1 a,-5 ) h2-4
  g4-5 ( h-3 d2-1 )
  a4-5 ( c-3 e2 )
  c4-5 ( e-3 g-1 gis-2 a-1 d,-5 ) g,2\fermata
}

LHvv = \relative c {
  \clef bass
  \key g \major
  \tupletSpan 4
  \tuplet 3/2 {
    g8 h d g, h d
    \omit TupletNumber
    d fis a d, fis a
    a, c e a, c e
    e g h e, g h
    g c e g, c e
    g, h d f, h d
    e, a c e, a c
    h, dis fis h, dis fis
    d g h d, g h
    d, fis a d, fis a
    e a c e, a c
    e, g h e, g h
    g, c e g, c e
    g, h d f, h d
    e a c c, d fis
    h, d g
  }
  < h, d g >4
}

kopf=\header {
  title = \myTitel
  subtitle = "aus Op.228"
  subsubtitle = ##f
  composer = "Cornelius Gurlitt (1820-1901)"
  poet = "Notensatz: lilypond.miraheze.org"
}

\bookpart {
  \paper {
    top-margin = 15\mm
    ragged-right = ##f
    ragged-last = ##f
    ragged-bottom = ##f
    ragged-last-bottom = ##f
    bottom-margin = 25\mm
    indent = #10
    line-width = 170\mm
    print-all-headers = ##f
    #(include-special-characters)
    print-first-page-number = ##t
    first-page-number = #1
    oddFooterMarkup = ##f
    evenFooterMarkup = ##f
    oddHeaderMarkup = #oddFooterMarkup
    evenHeaderMarkup = #evenFooterMarkup
    markup-system-spacing.padding = #6
    system-system-spacing.padding = #0
    markup-markup-spacing.padding = #2
    score-system-spacing = #system-system-spacing
  }
  \kopf
  \score
  {
    \new PianoStaff
    <<
      \new Staff
      \new Voice
      {
        \set PianoStaff.instrumentName = "Thema"
        \RHg
      }
      \new Staff
      <<
        \new Voice \LHg
      >>
    >>
  }
  \score
  {
    \new PianoStaff
    <<
      \new Staff
      {
        \set PianoStaff.instrumentName = "Var I"
        \RHv
      }
      \new Staff
      <<
        \new Voice \LHv
      >>
    >>

  }
  \score
  {
    \new PianoStaff
    <<
      \new Staff
      {
        \set PianoStaff.instrumentName = "Var II"
        \override Score.SpacingSpanner.common-shortest-duration = #(ly:make-moment 1/1)
        <<
          \new Voice \RHg
          \new NullVoice
          {
            %s2 * 6 \break
          }
        >>
      }
      \new Staff
      <<
        \new Voice \LHvv
      >>
    >>
  }
  {
    \new PianoStaff
    <<
      \new Staff
      \new Voice
      {
        \set PianoStaff.instrumentName = "Thema"
        <<
          \new Voice \RHg
          \new NullVoice
          {
            s2 * 8 \break
          }
        >>
      }
      \new Staff
      <<
        \new Voice \LHg
      >>
    >>
  }
}
\version "2.19.52"
\language "deutsch"

tra=\markup { \dynamic p \normal-text \italic "tranquillo" }
ptran = #(make-dynamic-script tra)
at=\markup { \normal-text \italic "a tempo" }
ate=#(make-dynamic-script at)
rrit=\markup { \dynamic pp \normal-text \italic "ritenuto" }
pprit = #(make-dynamic-script rrit)
po=\markup { \normal-text \italic "poco rit." }
pori=#(make-dynamic-script po)


pplegr=\markup { \dynamic p \normal-text \italic "snd." \dynamic mf }
psndf = #(make-dynamic-script pplegr)

Dynb = {
  %\set alignBelowContext ="Discant"
  \partial 2
  s2\psndf s1*7
}

myTitel = "Thema mit einer Variation G-Dur"
mycomp="C Gurlitt"


\layout {
  \context {
    \Voice
    beamExceptions = #'()
    \override BreathingSign.text =
    \markup { \musicglyph #"scripts.lvarcomma" }
    \override Stem.neutral-direction = #down
    \override Script.outside-staff-priority = #'()
    \override Script.padding = #1
    \override Tie.thickness = #1
    \override PhrasingSlur.thickness = #3
    \override Rest.voiced-position = #0
    \override MultiMeasureRest.expand-limit = #3
  }
  \context {
    \Staff
    printPartCombineTexts = ##f
    beamExceptions = #'()
    \override BreathingSign.text =
    \markup { \musicglyph #"scripts.lvarcomma" }
    \override InstrumentName.font-features = #'("smcp")
  }
  \context {
    \PianoStaff
    \override VerticalAxisGroup.staff-staff-spacing.basic-distance = #13
  }
  \context {
    \Score
    \override VerticalAxisGroup.remove-first = ##t
    skipBars = ##f
    \override MetronomeMark.font-size = #1
    \override MetronomeMark.font-shape = #'caps
    \override BarLine.thick-thickness = 5
    barNumberVisibility = #all-bar-numbers-visible
    \override Timing.beamExceptions = #'()
    \override BarNumber.color = #(rgb-color 0.7 0.7 0.7)
    \override BarNumber.layer = #-200
    \override BarNumber.outside-staff-priority =#'()
    \override BarNumber.padding = #1
    \override BarNumber.font-size = #-1
    \override BarNumber.font-series = #'bold
    \override BarNumber.self-alignment-X = #0
    \override BarNumber.break-visibility = #end-of-line-invisible
  }
}

RHg= \relative c' {
  \time 2/4
  \key g \major
  \slurUp
  \tempo "Moderato"
  \override DynamicText.self-alignment-X = #-1
  \override DynamicText.X-offset = #-1
  < d-1 g-3 h-5 >4-. ( q-. < d-1 fis-2 a-4 >2-- )
  < e-1 a-3 c-5 >4 ( q <e-1 g-2 h-4>2 )
  < g-1 c-3 e-5>4-. ( q-. < g-1 h-2 d-4 >-. < f-1 h-3 d-5>-.
  < e-1 a-2 c-4 >-. < e-1 a-3 c-5 >4-.\pori ) < dis-1 fis!-2 h-4>2-- %\break
  < d!-1 g-3 h-5>4-.\ate ( q-. < d-1 fis-2 a-4>2 )
  < e a c >4-. ( q-. < e g h >2-- )
  < g c e>4-. ( q-. < g-1 h-2 d-4 >-. < f h d>-.
  < e-1 a-2 c-4 >-. < c-1 d-2 fis-4 >4-. < h d g >2\fermata )
  \bar "||"
}

LHg = \relative c {
  \clef bass
  \key g \major
  \set fingeringOrientations = #'(left) %% für Akkorde!
  \mergeDifferentlyHeadedOn
  \mergeDifferentlyDottedOn
  \override Fingering.direction = #DOWN  %% für Einzelnoten!
  \override Fingering.padding = #0.2
  %\override Fingering.staff-padding = #'()
  \override Fingering.avoid-slur = #'inside
  %\override Slur.direction = #UP
  g4-.-5 ( h-.-3 d2-1-- )
  a4-5-. ( c-3-. e2 )
  c4-.-5 ( e-.-3 g-1-. gis-2-. a-1-. a,-5-. ) h2-4--
  g4-.-5 ( h-.-3 d2-1-- )
  a4-5-. ( c-3-. e2 )
  c4-.-5 ( e-.-3 g-1-. gis-2-. a-1-. d,-5-. ) g2-4--
}

RHv= \relative c'' {
  \time 2/4
  \key g \major
  \override DynamicText.self-alignment-X = #-1
  \override DynamicText.X-offset = #-1
  \slurUp
  \tempo "Moderato"
  \omit TupletNumber
  \omit TupletBracket
  \tuplet 3/2 {
    h8-5\ptran g-3 d-1 h' g d
    a'-4 fis-2 d-1 a' fis d
    c'-5 a-3 e-1 c' a e
    h'-4 g-2 e-1 h' g e
    e'-5\< c-3 g e' c g\!
    d'-4 h-2 g-1 d'-5 h-3 f-1
    c'-4\> a-2 e-1 c'-5 a-3 e-1\!
    h'-5\pori fis-2 dis-1 h' fis dis
    h'8-5 g d h' g d
    a'-4 fis d a' fis d
    c'-5 a e c' a e
    h'-4 g e h' g e
    e'-5 c g e' c g
    d'-4 h g d'-5 h f
    c'-4\pprit a e fis-4 d c

  }
  < h d g >2\arpeggio\fermata
  \bar "|."
}

LHv = \relative c {
  \clef bass
  \key g \major
  \set fingeringOrientations = #'(left) %% für Akkorde!
  \mergeDifferentlyHeadedOn
  \mergeDifferentlyDottedOn
  \override Fingering.direction = #DOWN  %% für Einzelnoten!
  \override Fingering.padding = #0.2
  %\override Fingering.staff-padding = #'()
  \override Fingering.avoid-slur = #'inside
  %\override Slur.direction = #UP
  g4-5 ( h-3 d2-1 )
  a4-5 ( c-3 e2 )
  c4-5 ( e-3 g-1 gis-2 a-1 a,-5 ) h2-4
  g4-5 ( h-3 d2-1 )
  a4-5 ( c-3 e2 )
  c4-5 ( e-3 g-1 gis-2 a-1 d,-5 ) g,2\fermata
}

LHvv = \relative c {
  \clef bass
  \key g \major
  \tupletSpan 4
  \tuplet 3/2 {
    g8 h d g, h d
    \omit TupletNumber
    d fis a d, fis a
    a, c e a, c e
    e g h e, g h
    g c e g, c e
    g, h d f, h d
    e, a c e, a c
    h, dis fis h, dis fis
    d g h d, g h
    d, fis a d, fis a
    e a c e, a c
    e, g h e, g h
    g, c e g, c e
    g, h d f, h d
    e a c c, d fis
    h, d g
  }
  < h, d g >4
}

kopf=\header {
  title = \myTitel
  subtitle = "aus Op.228"
  subsubtitle = ##f
  composer = "Cornelius Gurlitt (1820-1901)"
  poet = "Notensatz: lilypond.miraheze.org"
}

\bookpart {
  \paper {
    top-margin = 15\mm
    ragged-right = ##f
    ragged-last = ##f
    ragged-bottom = ##f
    ragged-last-bottom = ##f
    bottom-margin = 25\mm
    indent = #10
    line-width = 170\mm
    print-all-headers = ##f
    #(include-special-characters)
    print-first-page-number = ##t
    first-page-number = #1
    oddFooterMarkup = ##f
    evenFooterMarkup = ##f
    oddHeaderMarkup = #oddFooterMarkup
    evenHeaderMarkup = #evenFooterMarkup
    markup-system-spacing.padding = #6
    system-system-spacing.padding = #0
    markup-markup-spacing.padding = #2
    score-system-spacing = #system-system-spacing
  }
  \kopf
  \score
  {
    \new PianoStaff
    <<
      \new Staff
      \new Voice
      {
        \set PianoStaff.instrumentName = "Thema"
        \RHg
      }
      \new Staff
      <<
        \new Voice \LHg
      >>
    >>
  }
  \score
  {
    \new PianoStaff
    <<
      \new Staff
      {
        \set PianoStaff.instrumentName = "Var I"
        \RHv
      }
      \new Staff
      <<
        \new Voice \LHv
      >>
    >>

  }
  \score
  {
    \new PianoStaff
    <<
      \new Staff
      {
        \set PianoStaff.instrumentName = "Var II"
        \override Score.SpacingSpanner.common-shortest-duration = #(ly:make-moment 1/1)
        <<
          \new Voice \RHg
          \new NullVoice
          {
            %s2 * 6 \break
          }
        >>
      }
      \new Staff
      <<
        \new Voice \LHvv
      >>
    >>
  }
  {
    \new PianoStaff
    <<
      \new Staff
      \new Voice
      {
        \set PianoStaff.instrumentName = "Thema"
        <<
          \new Voice \RHg
          \new NullVoice
          {
            s2 * 8 \break
          }
        >>
      }
      \new Staff
      <<
        \new Voice \LHg
      >>
    >>
  }
}

#(set-global-staff-size 24)
#(define ((chord-name->german-markup-text-alteration B-instead-of-Bb) pitch lowercase?)

   (define (pitch-alteration-semitones pitch)
     (inexact->exact (round (* (ly:pitch-alteration pitch) 2))))

   (define (conditional-string-downcase str condition)
     (if condition
         (string-downcase str)
         str))

   (let* ((name (ly:pitch-notename pitch))
          (alt-semitones  (pitch-alteration-semitones pitch))
          (n-a (if (member (cons name alt-semitones) `((6 . -1) (6 . -1)))
                   (cons 7 (+ (if B-instead-of-Bb 1 1) alt-semitones))
                   (cons name alt-semitones))))
     (make-line-markup
      (list
       (make-simple-markup
        (conditional-string-downcase
         (vector-ref #("C" "D" "E" "F" "G" "A" "H" "B") (car n-a))
         lowercase?))
       (let ((alteration (/ (cdr n-a) 2)))
         (cond
          ((and (equal? lowercase? #f) (= alteration FLAT) (= (car n-a) 7)) (make-simple-markup ""))
          ((and (= alteration FLAT) (or (= (car n-a) 5) (= (car n-a) 2) )) (make-simple-markup "s"))
          ((= alteration FLAT) (make-simple-markup "es"))
          ((and (= alteration DOUBLE-FLAT) (or (= (car n-a) 5)(= (car n-a) 2) )) (make-simple-markup "ses"))
          ((= alteration DOUBLE-FLAT) (make-simple-markup "eses"))
          ((= alteration SHARP) (make-simple-markup "is"))
          ((= alteration DOUBLE-SHARP) (make-simple-markup "isis"))
          (else empty-markup)))))))

#(define germanChords (chord-name->german-markup-text-alteration #t))

make-midi-list =
#(define-void-function (name score tempolist)
   ((string? #f) ly:score? list?)
   (for-each
    (lambda (tempo)
      (ly:book-process
       (apply
        ly:make-book
        $defaultpaper
        $defaultheader
        (list score))
       $defaultpaper
       #{
         \midi {
           \tempo 4 = $tempo
         }
       #}
       (format #f "~a_~a"
         (or name "midi")
         tempo)))
    tempolist))

editorsColor = #grey
ed =
#(define-music-function (grob col mus)
   (symbol-list-or-symbol? (color? editorsColor) ly:music?)
   ;; for abbreviations, we need a symbol instead of a one-element list
   (let ((grob (if (= 1 (length grob)) (car grob) grob)))
     (case
      grob
      ;; define abbreviations
      ;; which call the function recursively with a value
      ;; leading into the (else) clause
      ;; (or to _another_ abbreviation)
      ;; be careful to avoid infinite recursion :-)
      ;; – abbreviation names must not be actual grob names
      ;; (at least if they’re used in the corresponding
      ;; clause) or recursion will be infinite also
      ;; It is recommended to use singular forms only
      ;; for abbreviations.
      ((Caut) #{ \ed Staff.AccidentalCautionary #})
      ((LedgerLine) #{ % barline is workaround to issue 3949
        \stopStaff
        \ed Staff.LedgerLineSpanner {
          \startStaff
          $mus
          \stopStaff
        }
        \startStaff #})
      ((Mmr) #{ \ed MultiMeasureRest $mus #})
      ((Note) #{ \ed Staff.Accidental
                 \ed Beam
                 \ed Dots
                 \ed Flag
                 \ed LedgerLine
                 \ed NoteHead
                 \ed Rest
                 \ed Stem $mus #})
      ((Pitch) #{ \ed NoteHead $mus #})
      ((Suggest) #{ \ed Staff.AccidentalSuggestion #})
      ((StemWithFlag) #{ \ed Stem \ed Flag $mus #})
      ((Tuplet) #{ \ed TupletNumber \ed TupletBracket $mus #})
      ;; ‘normal’ case
      (else
       #{
         \override $grob . color = #col
         $mus
         \revert $grob . color
       #}))))

#(define new-stil
   (lambda (grob)
     (let* ((sz (ly:grob-property grob 'font-size 0.0))
            (mult (magstep sz))
            (dir (ly:grob-property grob 'direction))
            (thick 0.15)
            (radius 0.7)
            (scaled-radius (* mult radius))
            (ps-command-string
             (format #f
               "
             0 ~a translate
             ~a setlinewidth
             ~a 0 moveto
             0 0 ~a 180 0 ~a
             stroke
             "
               ;mult
               (* thick dir)
               thick
               (- scaled-radius)
               scaled-radius
               (if (negative? dir) "arcn" "arc"))))

       (ly:make-stencil
        (list 'embedded-ps
          (format #f
            "
              gsave currentpoint translate
              ~a
              grestore
              "
            ps-command-string))
        (cons (- scaled-radius) scaled-radius)
        (cons
         (if (negative? dir) 0 (- scaled-radius))
         (if (negative? dir) scaled-radius 0))))))

soft =
-\tweak stencil #new-stil \fermata

#(define-markup-command (text-fromproperty layout props text-1 symbol text-2)
   (markup? symbol? markup?)
   #:category other
   (let ((m (chain-assoc-get symbol props)))
     (if (markup? m)
         ;; prevent infinite loops by clearing the interpreted property:
         (interpret-markup
          layout
          (cons (list (cons symbol `(,property-recursive-markup ,symbol))) props)
          (make-concat-markup (list text-1 m text-2)))
         empty-stencil)))

mynote =
#(define-music-function (m)
   (ly:duration?)
   #{
     \override Score.RehearsalMark.break-align-symbols = #'(time-signature)
     \once \override Score.RehearsalMark.self-alignment-X = #-1
     \mark \markup \fontsize #-3.5 \note { $m } #UP
   #}
   )

myottava =
#(define-music-function (o) (integer?)
   (let ((text (case o
                 ((0) #f)
                 ((1 -1) "8")
                 ((2 -2) "15"))))
     #{
       \ottava #o
       \set Staff.ottavation = #text
     #}))

dynamictext =
#(define-event-function (text) (markup?)
   (if (string? text)
       (let* ((underscores-replaced
               (string-map
                (lambda (x) (if (eq? x #\_) #\space x))
                text))
              (split-text (string-split underscores-replaced #\space))
              (formatted (map
                          (lambda (word)
                            (if (string-match "^[mrzfps]*$" word)
                                (markup #:dynamic word)
                                (markup #:normal-text #:italic word)))
                          split-text)))
         #{
           #(make-dynamic-script (make-line-markup formatted))
         #})
       ;; user provided a full-blown markup, so we don't mess with it:
       #{
         #(make-dynamic-script (markup #:normal-text text))
       #}))

dynstr =
#(define-event-function (text) (markup?)
   (if (string? text)
       (let* ((underscores-replaced
               (string-map
                (lambda (x) (if (eq? x #\_) #\space x))
                text))
              (split-text (string-split underscores-replaced #\space))
              (formatted (map
                          (lambda (word)
                            (if (string-match "^[mrzfps]*$" word)
                                (markup #:dynamic word)
                                (markup #:normal-text #:italic word)))
                          split-text)))
         #{
           #(make-dynamic-script (make-line-markup formatted))
         #})
       ;; user provided a full-blown markup, so we don't mess with it:
       #{
         #(make-dynamic-script (markup #:normal-text text))
       #}))

orgel =
%Notensatz 4stimmig + Umbrüche
#(define-music-function (sop alt ten bas stru p)
   (ly:music? ly:music? ly:music? ly:music? ly:music? ly:pitch?)
   #{
     <<
       \new PianoStaff="leadsheet"
       <<
         \new Staff="up"
         <<
           \new Voice="Alt" { \transpose c $p $sop }
           \new Voice { \transpose c $p $alt }
         >>
         \new Staff="down"
         <<
           \new Voice { \transpose c $p $ten }
           \new Voice { \transpose c $p $bas }
           \new Voice $stru
         >>
       >>
     >>
   #}
   )

\include "articulate.ly"


#(define-markup-command (text-fromproperty layout props text-1 symbol text-2)
   (markup? symbol? markup?)
   #:category other
   (let ((m (chain-assoc-get symbol props)))
     (if (markup? m)
         ;; prevent infinite loops by clearing the interpreted property:
         (interpret-markup
          layout
          (cons (list (cons symbol `(,property-recursive-markup ,symbol))) props)
          (make-concat-markup (list text-1 m text-2)))
         empty-stencil)))

#(define-markup-command (tonart-fromproperty layout props text-1 symbol symbol2)
   (markup? symbol? symbol?)
   #:category other
   (let* ((m (chain-assoc-get symbol props))
          (ton (chain-assoc-get symbol2 props))
          (dur (if (markup? ton) ton "-Dur"))
          )
     (if (markup? m)
         ;; prevent infinite loops by clearing the interpreted property:
         (interpret-markup
          layout
          (cons (list (cons symbol `(,property-recursive-markup ,symbol))) props)
          (make-concat-markup (list text-1 m dur)))
         empty-stencil)))
\paper {
  #(include-special-characters)
  indent = #0
  ragged-right = ##f
  ragged-last = ##f
  print-all-headers = ##f
  print-first-page-number = ##f
  oddFooterMarkup = ##f
  evenFooterMarkup = ##f
  oddHeaderMarkup = #oddFooterMarkup
  evenHeaderMarkup = #evenFooterMarkup
  bookTitleMarkup =
  \markup {
    \override #'(baseline-skip . 2)
    \column {
      \fill-line \override #'(baseline-skip . 3) {
        \huge \larger \larger \bold
        \center-column {
          \fromproperty #'header:title
         }
      }
      \fill-line \override #'(baseline-skip . 3) {
        \fontsize #-2 \bold
        \center-column {
         \vspace #.3
          \fromproperty #'header:subtitle
          " "
        }
      }
      \fontsize #-1.5 {
        \fill-line {
          "Notensatz: lilypond.miraheze.org" \fromproperty #'header:composer
        }
      }
      \fontsize #-1.5 \fill-line {
        ""
        \tonart-fromproperty "Originaltonart: " #'header:key #'header:dur
      }
    }
  }
}

\layout {
  \context {
    \Voice
    beamExceptions = #'()
    \override BreathingSign.text =
    \markup { \musicglyph "scripts.lvarcomma" }
    \override Stem.neutral-direction = #down
    \override Script.outside-staff-priority = #'()
    \override Script.padding = #1
    \override Tie.thickness = #1
    \override PhrasingSlur.thickness = #3
    \override Rest.voiced-position = #0
    \override MultiMeasureRest.expand-limit = #3
  }
  \context {
    \Lyrics
    \override VerticalAxisGroup.staff-affinity = #CENTER
    \override LyricText.font-size = #-1.5
  }
  \context {
    \Staff
    printPartCombineTexts = ##f
    beamExceptions = #'()
    \override BreathingSign.text =
    \markup { \musicglyph "scripts.lvarcomma" }
    \override InstrumentName.font-features = #'("smcp")
    \consists #Span_stem_engraver
  }
  \context {
    \Score
    \override VerticalAxisGroup.remove-first = ##t
    skipBars = ##f
    \override MetronomeMark.font-size = #1
    \override MetronomeMark.font-shape = #'caps
    \override BarLine.thick-thickness = 5
    \override Timing.beamExceptions = #'()
    \override BarNumber.color = #(rgb-color 0.7 0.7 0.7)
    \override BarNumber.layer = #-200
    \override BarNumber.padding = #0.4
    \override BarNumber.outside-staff-priority =#'()
    \override BarNumber.after-line-breaking = ##f
    \override BarNumber.font-size = #-1
    \override BarNumber.font-series = #'bold
    \override BarNumber.self-alignment-X = #0
    \override BarNumber.break-visibility = #end-of-line-invisible
    \override SystemStartBar.collapse-height = #4

  }
  \context {
    \ChordNames
    chordNameLowercaseMinor = ##f
    \remove Staff_performer
    chordRootNamer = #germanChords
    \override ChordName.font-name = #"Orator10 BT"
    chordNoteNamer = #(chord-name->german-markup #f)
    \override ChordName.X-offset =
    #ly:self-alignment-interface::aligned-on-x-parent
    \override ChordName.self-alignment-X = #CENTER
    \override ChordName.font-name = #"Arial Narrow"
    \override ChordName.layer = #2
    \override ChordName.font-size = #-0.5
    noChordSymbol = ##f
  }
  \context {
    \PianoStaff
    \override StaffGrouper.staffgroup-staff-spacing.basic-distance = #2
    \override StaffGrouper.staffgroup-staff-spacing.minimum-distance = #0
  }
  \context {
    \StaffGroup
    \override SystemStartBracket.collapse-height = #4
    \override SystemStartBracket.thickness = #.2
  }
}