Du gabst o Herr mir Sein und Leben

Zur Navigation springen Zur Suche springen

Du gabst, o Herr, mir Sein und Leben,
und deiner Lehre himmlisch Licht.
Was kann dafür, ich Staub, dir geben?
Nur danken kann ich, mehr doch nicht.

Wohl mir! Du willst für deine Liebe
ja nichts als wieder Lieb' allein;
und Liebe, dankerfüllte Liebe
soll meines Lebens Wonne sein.

Mich selbst, o Herr, mein Tun und Denken
und Leid und Freude opfr' ich dir;
Herr, nimm durch deines Sohnes Opfer
dies Herzensopfer auch von mir.

\documentclass[10pt,ngerman]{article}
\usepackage{pdfpages}
\usepackage[T1]{fontenc}

\usepackage[a4paper,margin=2cm,top=4.5cm,nomarginpar,nofoot,nohead,headheight=0cm,headsep=0cm,footskip=0cm,bottom=1cm]{geometry}

\usepackage{babel}
\usepackage{eco}
\usepackage{polyglossia}
\setdefaultlanguage[spelling=new,babelshorthands=true]{german}

\usepackage[lyric,noshading,nomeasures,noindexes]{songs}
\usepackage{etoolbox}

\setlength{\sbarheight}{0pt}
\settowidth{\versenumwidth}{\large{14.\ }}
\versesep=2ex
\songcolumns{1}
\renewcommand\lyricfont{\normalfont\large}
\renewcommand\stitlefont{\normalfont\bfseries\huge}
\renewcommand{\versejustify}{\justifyleft}
\nosongnumbers
\begin{document}

\begin{songs}{}
  \beginsong{Du gabst, o Herr, mir Sein und Leben\brk \phantom{text}}[
    by={Deutsche Messe – zum Offertorium}
    ,sr={M: Franz Schubert (1797-1828) 1827\brk
        T: Johann Philipp Neumann 1827}
    ,li={}
    ,cr={}]
  \beginverse
  Du gabst, o Herr, mir Sein und Leben,
  und deiner Lehre himmlisch Licht.
  Was kann dafür, ich Staub, dir geben?
  Nur danken kann ich, mehr doch nicht.
  \endverse
  \beginverse
  Wohl mir! Du willst für deine Liebe
  ja nichts als wieder Lieb' allein;
  und Liebe, dankerfüllte Liebe
  soll meines Lebens Wonne sein.
  \endverse
  \beginverse
  Mich selbst, o Herr, mein Tun und Denken
  und Leid und Freude opfr' ich dir;
  Herr, nimm durch deines Sohnes Opfer
  dies Herzensopfer auch von mir.
  \endverse
  \endsong
\end{songs}
\end{document}

\documentclass[10pt,ngerman]{article}
\usepackage{pdfpages}
\usepackage[T1]{fontenc}

\usepackage[a4paper,margin=2cm,top=4.5cm,nomarginpar,nofoot,nohead,headheight=0cm,headsep=0cm,footskip=0cm,bottom=1cm]{geometry}

\usepackage{babel}
\usepackage{eco}
\usepackage{polyglossia}
\setdefaultlanguage[spelling=new,babelshorthands=true]{german}

\usepackage[lyric,noshading,nomeasures,noindexes]{songs}
\usepackage{etoolbox}

\setlength{\sbarheight}{0pt}
\settowidth{\versenumwidth}{\large{14.\ }}
\versesep=2ex
\songcolumns{1}
\renewcommand\lyricfont{\normalfont\large}
\renewcommand\stitlefont{\normalfont\bfseries\huge}
\renewcommand{\versejustify}{\justifyleft}
\nosongnumbers
\begin{document}

\begin{songs}{}
  \beginsong{Du gabst, o Herr, mir Sein und Leben\brk \phantom{text}}[
    by={Deutsche Messe – zum Offertorium}
    ,sr={M: Franz Schubert (1797-1828) 1827\brk
        T: Johann Philipp Neumann 1827}
    ,li={}
    ,cr={}]
  \beginverse
  Du gabst, o Herr, mir Sein und Leben,
  und deiner Lehre himmlisch Licht.
  Was kann dafür, ich Staub, dir geben?
  Nur danken kann ich, mehr doch nicht.
  \endverse
  \beginverse
  Wohl mir! Du willst für deine Liebe
  ja nichts als wieder Lieb' allein;
  und Liebe, dankerfüllte Liebe
  soll meines Lebens Wonne sein.
  \endverse
  \beginverse
  Mich selbst, o Herr, mein Tun und Denken
  und Leid und Freude opfr' ich dir;
  Herr, nimm durch deines Sohnes Opfer
  dies Herzensopfer auch von mir.
  \endverse
  \endsong
\end{songs}
\end{document}

sop = \relative c' {
  \key b \major
  \autoBeamOff
  f8
  f8. es16 d8 f b b
  b4 a8 \breathe c c c
  c4. b8 a g
  f2 r8 f8
  f8. es16 d8 f b b
  b4 a r8 b
  b8. g16 g8 b as f
  g2 r8 \mybrack "auf f"
  {
    f
    f8. d16 d8 f es c
    b4
  }
  r4 r8
  \bar "|."
}

alt = \relative c' {
  d8
  d8. c16 b8 d d e
  f4 ~ f8 f ~ f e
  f4. g8 f e
  c2 s8 d
  d8. c16 b8 d e4
  f2 s8 f
  g8. es16 es4 d
  es2 s8 d
  d8. b16 b8 h c a
  f4
}

ten = \relative c {
  \key b \major
  f8 ~
  f4. b8 ~ b c8
  d4 c8 \breathe a4 b8
  c4. r4 r8
  a2 r8 f8 ~
  f4. b8 cis4
  d c r8 b ~
  b2 ~ b4 ~
  b2 r8 f ~
  f4. d8 es4
  d4 r r8
}

bas = \relative c {
  \clef bass
  b8
  b4. ~ b8 g'4
  f4 ~ f8 f4 g8
  a4. b,8 c4
  f2 s8 b,
  b4. ~ b8 g'4
  f2 s8 d
  es4 es8 g f b,
  es2 s8 b8
  b4. h8 c4
  b4
}

lyr = \lyricmode {
  \override LyricText.font-size = #-1
  \set stanza = #"1."
  Du gabst, o Herr, mir Sein und Le -- ben
  und dei -- ner Leh -- re himm -- lisch Licht.
  Was kann da -- für ich Staub dir ge -- ben?
  Nur dank -- ken kann ich, mehr doch nicht,
  nur dank -- ken kann ich, mehr doch nicht.
}

Akk=
\chordmode {
  b8 b2 g8:m c
  b4 f s
  f4.:7 g8:m f c
  f2 s8 b
  b2 cis4:dim
  b4 f s8 b
  es2 b4:7
  es2 s8 s
  b4. g8:7 es8 f:7
  b4
}

Struktur =
{
  \set Timing.baseMoment = #(ly:make-moment 1/18)
  \set Timing.beatStructure = #'(2 1 3)
  \time 3/4
  \partial 8
  \override Score.NonMusicalPaperColumn.page-break-permission = ##f
  \mynote 4
  s8
}

mypaper =
\paper {
  top-margin = 15\mm
  ragged-right = ##f
  ragged-last-bottom = ##f
  bottom-margin = 15\mm
  line-width = 150\mm
  markup-system-spacing.padding = #2
  system-system-spacing.padding = #0
}

kopf = \header {
  title = "Du gabst, o Herr, mir Sein und Leben"
  subtitle = "Deutsche Messe D872"
  poet = "T: Josef Ph. Neumann (1774-1849)"
  composer = "M: Franz Schubert (1798-1831)"
  key="F"
  old-key="802/4"
  new-key="711/4"
  extra = " "
}

\bookpart {
  \mypaper
  \kopf
  \score
  {
    \orgel \sop \alt \ten \bas \Akk \Struktur \lyr c
  }
  \gabenbereitung
}

sop = \relative c' {
  \key b \major
  \autoBeamOff
  f8
  f8. es16 d8 f b b
  b4 a8 \breathe c c c
  c4. b8 a g
  f2 r8 f8
  f8. es16 d8 f b b
  b4 a r8 b
  b8. g16 g8 b as f
  g2 r8 \mybrack "auf f"
  {
    f
    f8. d16 d8 f es c
    b4
  }
  r4 r8
  \bar "|."
}

alt = \relative c' {
  d8
  d8. c16 b8 d d e
  f4 ~ f8 f ~ f e
  f4. g8 f e
  c2 s8 d
  d8. c16 b8 d e4
  f2 s8 f
  g8. es16 es4 d
  es2 s8 d
  d8. b16 b8 h c a
  f4
}

ten = \relative c {
  \key b \major
  f8 ~
  f4. b8 ~ b c8
  d4 c8 \breathe a4 b8
  c4. r4 r8
  a2 r8 f8 ~
  f4. b8 cis4
  d c r8 b ~
  b2 ~ b4 ~
  b2 r8 f ~
  f4. d8 es4
  d4 r r8
}

bas = \relative c {
  \clef bass
  b8
  b4. ~ b8 g'4
  f4 ~ f8 f4 g8
  a4. b,8 c4
  f2 s8 b,
  b4. ~ b8 g'4
  f2 s8 d
  es4 es8 g f b,
  es2 s8 b8
  b4. h8 c4
  b4
}

lyr = \lyricmode {
  \override LyricText.font-size = #-1
  \set stanza = #"1."
  Du gabst, o Herr, mir Sein und Le -- ben
  und dei -- ner Leh -- re himm -- lisch Licht.
  Was kann da -- für ich Staub dir ge -- ben?
  Nur dank -- ken kann ich, mehr doch nicht,
  nur dank -- ken kann ich, mehr doch nicht.
}

Akk=
\chordmode {
  b8 b2 g8:m c
  b4 f s
  f4.:7 g8:m f c
  f2 s8 b
  b2 cis4:dim
  b4 f s8 b
  es2 b4:7
  es2 s8 s
  b4. g8:7 es8 f:7
  b4
}

Struktur =
{
  \set Timing.baseMoment = #(ly:make-moment 1/18)
  \set Timing.beatStructure = #'(2 1 3)
  \time 3/4
  \partial 8
  \override Score.NonMusicalPaperColumn.page-break-permission = ##f
  \mynote 4
  s8
}

mypaper =
\paper {
  top-margin = 15\mm
  ragged-right = ##f
  ragged-last-bottom = ##f
  bottom-margin = 15\mm
  line-width = 150\mm
  markup-system-spacing.padding = #2
  system-system-spacing.padding = #0
}

kopf = \header {
  title = "Du gabst, o Herr, mir Sein und Leben"
  subtitle = "Deutsche Messe D872"
  poet = "T: Josef Ph. Neumann (1774-1849)"
  composer = "M: Franz Schubert (1798-1831)"
  key="F"
  old-key="802/4"
  new-key="711/4"
  extra = " "
}

\bookpart {
  \mypaper
  \kopf
  \score
  {
    \orgel \sop \alt \ten \bas \Akk \Struktur \lyr c
  }
  \gabenbereitung
}

#(set-global-staff-size 24)
\include "articulate.ly"

#(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))

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 (golo-schu layout props titel nr ton)
   (string? string? string?)
   (interpret-markup layout props
     #{
       \markup
       {
         \column {
           \override #'(baseline-skip . 2)
           \column
           {
             \fill-line \override #'(baseline-skip . 2.5) {
               \huge \larger \larger \bold
               \center-column
               {
                 $titel
                 \fontsize #-3 \line { "GL № 711/" $nr \fontsize #-1 \concat { " (bis 2013 № 802/" $nr ) } }
                 " "
               }
             }
             \column
             \fontsize #-1.5
             {
               \fill-line {
                 "T: Josel Ph. Neumann (1774-1849)" "M: Franz Schubert (1797-1828)"
               }
               \fill-line {
                 "Notensatz: lilypond.miraheze.org" "Deutsche Messe D872"
               }
               \fill-line {
                 "" \concat { "Originaltonart: " $ton "-Dur" }
               }
             }
           }
         }
       }
     #}
     )
   )

#(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)))

dropLyrics =
#(define-scheme-function (l)(number?)
   #{
     \override LyricText.extra-offset = #`(0 . ,l)
     \override LyricHyphen.extra-offset = #`(0 . ,l)
     \override LyricExtender.extra-offset = #`(0 . ,l)
     \override StanzaNumber.extra-offset = #`(0 . ,l)
   #}
   )

raiseLyrics = {
  \revert LyricText.extra-offset
  \revert LyricHyphen.extra-offset
  \revert LyricExtender.extra-offset
  \revert StanzaNumber.extra-offset
}

\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 = ##f
  scoreTitleMarkup =
  \markup {
    \override #'((baseline-skip . 2) )
    \column {
      \fill-line \override #'(baseline-skip . 2.5) {
        \huge \larger \larger \bold
        \center-column {
          \fromproperty #'header:title
          \fontsize #-2.5  {
            \fill-line { \fromproperty #'header:subtitle }
          }
          \fontsize #-3 \line {
            \text-fromproperty "GL № " #'header:new-number ""
            \fontsize #-1
            \text-fromproperty " (bis 2013 № " #'header:old-number ")"
          }
          " "
        }
      }
      \fontsize #-1.5 {
        \fill-line {
          \fromproperty #'header:poet \fromproperty #'header:composer
        }
        \fill-line {
          "Notensatz: lilypond.miraheze.org" ""
          \tonart-fromproperty "Originaltonart: " #'header:key  #'header:dur
        }
        \fill-line {
          \fromproperty  #'header:instrument
          \fromproperty  #'header:arranger
        }
      }
    }
  }
}

orgel =
%Notensatz für Orgelnoten 4stimmig + Text + Harmonisierung + Umbrüche
#(define-music-function (sop alt ten bas akk stru lyr p)
   (ly:music? ly:music? ly:music? ly:music? ly:music? ly:music? ly:music? ly:pitch?)
   #{
     <<
       \new ChordNames \transpose c $p $akk
       \new PianoStaff="leadsheet"
       <<
         \new Staff="up"
         <<
           \new Voice="Alt"
           \with { \consists Ambitus_engraver }
           { \voiceOne \transpose c $p $sop }
           \new Voice { \voiceTwo \transpose c $p $alt }
         >>
         \new Lyrics \lyricsto Alt $lyr
         \new Staff="down"
         <<
           \new Voice { \voiceOne \transpose c $p $ten }
           \new Voice { \voiceTwo \transpose c $p $bas }
           \new NullVoice $stru
         >>
       >>
     >>
   #}
   )

orgels =
%% simple orgelsatz nur SATBs kein Liedtext
#(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"
           \with { \consists Ambitus_engraver }
           { \voiceOne \transpose c $p $sop }
           \new Voice { \voiceTwo \transpose c $p $alt }
         >>
         \new Staff="down"
         <<
           \new Voice { \voiceOne \transpose c $p $ten }
           \new Voice { \voiceTwo \transpose c $p $bas }
           \new NullVoice $stru
         >>
       >>
     >>
   #}
   )

orgelo =
% keine Transponiermöglichkeit
#(define-music-function (sop alt ten bas akk stru lyr)
   (ly:music? ly:music? ly:music? ly:music? ly:music? ly:music? ly:music?)
   #{
     <<
       \new ChordNames $akk
       \new PianoStaff="leadsheet"
       <<
         \new Staff="up"
         <<
           \new Voice="Alt"
           \with { \consists Ambitus_engraver }
           { \voiceOne $sop }
           \new Voice { \voiceTwo $alt }
         >>
         \new Lyrics \lyricsto Alt $lyr
         \new Staff="down"
         <<
           \new Voice { \voiceOne $ten }
           \new Voice { \voiceTwo $bas }
           \new NullVoice $stru
         >>
       >>
     >>
   #}
   )

orgelp =
%% Orgelsatz mit Pedal
#(define-music-function (sop alt ten bas ped akk stru lyr p)
   (ly:music? ly:music? ly:music? ly:music? ly:music? ly:music? ly:music? ly:music? ly:pitch?)
   #{

     <<
       \new ChordNames \transpose c $p $akk
       \new PianoStaff="leadsheet"
       <<
         \new Staff="up"
         <<
           \new Voice="Alt"
           \with { \consists Ambitus_engraver }
           { \voiceOne \transpose c $p $sop }
           \new Voice { \voiceTwo \transpose c $p $alt }
         >>
         \new Lyrics \lyricsto Alt $lyr
         \new Staff="down"
         <<
           \new Voice { \voiceOne \transpose c $p $ten }
           \new Voice { \voiceTwo \transpose c $p $bas }
           \new NullVoice $stru
         >>

       >>
       \new StaffGroup
       \new Staff="Pedal" \with {
         \magnifyStaff #5/7
       }
       <<
         \new Voice \transpose c $p $ped
       >>
     >>
   #}
   )

orgelpo =
%% Orgelnoten mit Pedal ohne Transponierung
#(define-music-function (sop alt ten bas ped akk stru lyr)
   (ly:music? ly:music? ly:music? ly:music? ly:music? ly:music? ly:music? ly:music?)
   #{

     <<
       \new ChordNames $akk
       \new PianoStaff="leadsheet"
       <<
         \new Staff="up"
         <<
           \new Voice="Alt"
           \with { \consists Ambitus_engraver }
           { \voiceOne $sop }
           \new Voice { \voiceTwo $alt }
         >>
         \new Lyrics \lyricsto Alt $lyr
         \new Staff="down"
         <<
           \new Voice { \voiceOne $ten }
           \new Voice { \voiceTwo $bas }
           \new NullVoice $stru
         >>

       >>
       \new StaffGroup
       \new Staff="Pedal" \with {
         \magnifyStaff #5/7
       }
       <<
         \new Voice $ped
       >>
     >>
   #}
   )

orgelly =
%% eine 2. Textzeile unterhalb
#(define-music-function (sop alt ten bas akk stru lyr lyrii p)
   (ly:music? ly:music? ly:music? ly:music? ly:music? ly:music? ly:music? ly:music? ly:pitch?)
   #{
     <<
       \new ChordNames \transpose c $p $akk
       \new PianoStaff="leadsheet"
       <<
         \new Staff="up"
         <<
           \new Voice="Alt"
           \with { \consists Ambitus_engraver }
           { \voiceOne \transpose c $p $sop }
           \new Voice { \voiceTwo \transpose c $p $alt }
         >>
         \new Lyrics \lyricsto Alt $lyr
         \new Lyrics \lyricsto Alt $lyrii
         \new Staff="down"
         <<
           \new Voice { \voiceOne \transpose c $p $ten }
           \new Voice { \voiceTwo \transpose c $p $bas }
           \new NullVoice $stru
         >>
       >>
     >>
   #}
   )

orgelpre =
%Notensatz für Vorspiel 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="up"
       <<
         \new Staff="up"
         <<
           \new Voice="Alt" { \voiceOne \transpose c $p $sop }
           \new Voice { \voiceTwo \transpose c $p $alt }
         >>
         \new Staff="down"
         <<
           \new Voice { \voiceOne \transpose c $p $ten }
           \new Voice { \voiceTwo \transpose c $p $bas }
           \new NullVoice $stru
         >>
       >>
     >>
   #}
   )

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 (substring (ly:parser-output-name) 4))
         tempo)))
    tempolist))

formidi =
%erzeugen des Scores für Midi
#(define-music-function (sop alt ten bas voc)
   (ly:music? ly:music? ly:music? ly:music? ly:music?)
   #{
     <<
       \new Staff {
         \new Voice {
           \set Staff.midiInstrument = "choir aahs"
           $voc
         }
       }
       \new Staff <<
         \set Staff.midiInstrument = "Church Organ"
         \new Voice $sop
         \new Voice $alt
         \new Voice $ten
         \new Voice $bas
       >>
     >>
   #}
   )

#(define myMidi "C:/Manuela/_Lilypond/orgel/Golo/midi/")

midi-list =
#(define-void-function (name sop alt ten bas voc tempolist)
   ((string? #f) ly:music? ly:music? ly:music? ly:music? ly:music? list?)
   (for-each
    (lambda (tempo)
      (ly:book-process
       (apply
        ly:make-book
        $defaultpaper
        $defaultheader
        (list (scorify-music #{
          <<
            \unfoldRepeats \new Staff {
              \new Voice {
                \set Staff.midiInstrument = "choir aahs"
                $voc
              }
            }
            \unfoldRepeats \new Staff <<
              \set Staff.midiInstrument = "Church Organ"
              \new Voice $sop
              \new Voice $alt
              \new Voice $ten
              \new Voice $bas
            >>
          >>
                #})))
       $defaultpaper
       #{
         \midi {
           \tempo 4 = $tempo
         }
       #}
       (format #f "~a_~a"
         (or name (string-append myMidi (ly:parser-output-name)))
         tempo)))
    tempolist))

midi-list-paus =
#(define-void-function (name sop alt ten bas voc pause tempolist)
   ((string? #f) ly:music? ly:music? ly:music? ly:music? ly:music? ly:music? list?)
   (for-each
    (lambda (tempo)
      (ly:book-process
       (apply
        ly:make-book
        $defaultpaper
        $defaultheader
        (list (scorify-music #{
          <<
            \unfoldRepeats \new Staff {
              \new Voice {
                \set Staff.midiInstrument = "choir aahs"
                $pause $voc
              }
            }
            \unfoldRepeats
            <<
              \new Staff \with { midiInstrument = #"church organ" }
              { $pause $sop }
              \new Staff \with { midiInstrument = #"church organ" }
              { $pause $alt }
              \new Staff \with { midiInstrument = #"church organ" }
              { $pause $ten }
              \new Staff \with { midiInstrument = #"church organ" }
              { $pause $bas }
            >>
          >>
                #})))
       $defaultpaper
       #{
         \midi {
           \tempo 4 = $tempo
         }
       #}
       (format #f "~a_~a"
         (or name (string-append myMidi (ly:parser-output-name)))
         tempo)))
    tempolist))

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
   #}
   )

mynotes =
#(define-music-function (m n)
   (ly:duration? ly:duration?)
   #{
     \override Score.RehearsalMark.break-align-symbols = #'(time-signature)
     \once \override Score.RehearsalMark.self-alignment-X = #-1
     \mark \markup \concat { \fontsize #-3.5 \note { $m } #UP " /" \fontsize #-3.5 \note { $n } #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
     #}))



chExceptionMusic = {
  <c e gis>1-\markup "(m)"
  <c f g>1-\markup \super "4"
}

% Convert music to list and prepend to existing exceptions.
chExceptions = #(append
                 (sequential-music-to-chord-exceptions chExceptionMusic #t)
                 ignatzekExceptions)

\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
    \consists Horizontal_bracket_engraver
    \override HorizontalBracket.direction = #UP
    \override HorizontalBracket.bracket-flare = #'(0 . 0)
    \override HorizontalBracketText.text = \markup \italic "Intro"
    \override HorizontalBracket.shorten-pair = #'(.5 . .5)
  }
  \context {
    \Lyrics
    \override VerticalAxisGroup.staff-affinity = #CENTER
    \override LyricText.font-size = #-1.5
    \override StanzaNumber.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
    %     \consists Measure_spanner_engraver
    %     \override MeasureSpanner.text = \markup \italic "Intro"
  }
  \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
    chordNameExceptions = #chExceptions
    \override ChordName.self-alignment-X = #CENTER
    \override ChordName.font-name = #"Arial Narrow"
    \override ChordName.layer = #2
    \override ChordName.font-size = #-0.5
    noChordSymbol = ##f
    \consists Horizontal_bracket_engraver
    \override HorizontalBracket.direction = #UP
    \override HorizontalBracket.bracket-flare = #'(0 . 0)
    \override HorizontalBracketText.text = \markup \italic "Intro"
  }
  \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
  }
}

oob = { \once \override Score.BarNumber.stencil = ##f \bar "" }
bnf = \once \override Score.BarNumber.stencil = ##f

gloria = \markup \override #'(baseline-skip . 2) \left-column {
  \line { Gloria: Ehre sei Gott }
  \line {
    Stichwort: \italic "Herr, erbarme dich unser"
  }
  \line { manchmal sagt der P so etwas ähnliches wie \italic "Ehre sei Gott in der Höhe" }
}

sanctus = \markup \override #'(baseline-skip . 2) \left-column {
  \line { Lobpreis Gottes: Heilig, heilig, heilig }
  \line {
    Stichwort: \italic "und singen mit den Engeln das Lob deiner Herrlichkeit"
  }
}

antwortlied = \markup \override #'(baseline-skip . 2) \left-column {
  \line { Antwortlied: nach der ersten Lesung }
  \line {
    Stichwort: \italic "Wort des lebendigen Gottes"
  }
}

gabenbereitung = \markup \override #'(baseline-skip . 2) \left-column {
  \wordwrap { Gabenbereitung (Offertorium): Beginn der Eucharistiefeier, nach den Fürbitten }
  \vspace #.2
  \line {
    Stichwort: \italic "darum bitten wir durch Christus, unsern Herrn"
  }
}

agnus =  \markup \override #'(baseline-skip . 2) \left-column {
  \line { Agnus Dei: Pfarrer zerbricht Hostie in mehrere Teile }
  \line {
    wann: nach dem Friedensgruß
  }
}

danklied =  \markup \override #'(baseline-skip . 2) \left-column {
  \line { Danklied }
  \line {
    wann: nach der Kommunionausteilung
  }
}

auszug =   \markup \override #'(baseline-skip . 2) \left-column {
  \line { Auszug, Verabschiedung }
  \line {
    Stichwort: \italic "gehet hin in Frieden"
  }
}

halleljua =  \markup \override #'(baseline-skip . 3) \left-column {
  \line { 1x leise }
  \line {
    1x leise, Vorbeter singt
  }
  \line {
    1x laut, Gemeinde singt
  }
  \line { Vorbeter betet }
  \line {
    1x laut, Gemeinde singt
  }
}

noambitus = {
  \override AmbitusLine.stencil = ##f
  \override AmbitusNoteHead.stencil = ##f
}

myintro =
#(define-music-function (m) ((string? #f) )
   #{
     \override HorizontalBracketText.text = \markup \italic { "Intro" $m }
   #})

%% Zusatztext und extra-offset sind optional
%% es müssen beide Parameter angegeben werden, wenn einer angegeben wird
mybrack =
#(define-music-function (t n m) ((string? #f) (number? 3.5) ly:music?)
   #{
     {
       \once \override HorizontalBracket.Y-extent = #'(0 . 0)
       \once \override HorizontalBracketText.Y-extent = #'(0 . 0)
       \once \override HorizontalBracket.extra-offset = #`(0 . ,n)
       \once \override HorizontalBracketText.extra-offset = #`(0 . ,n)
       \once \override HorizontalBracketText.text =
       \markup \italic { "Intro" #(or t "") }
       <>\startGroup
       $m
       \stopGroup
     }
   #})

%% ein optionaler Parameter
%% n ... extra-offset, nach oben verschieben
%%       der Standardwert ist für einen ChordNames-context oberhalb berechnet
%% der Zusatztext wird auf \null gesetzt

mybrack-offset =
#(define-music-function (n m) ((number? 3.5) ly:music?)
   #{
     {
       \mybrack "" $n $m
     }
   #})

#(define (lined-nh grob)
   (let* ((default-stil (ly:note-head::print grob))
          (default-stil-x-lngth
           (interval-length (ly:stencil-extent default-stil X)))
          (line-thickness (ly:staff-symbol-line-thickness grob))
          (staff-space (ly:staff-symbol-staff-space grob))
          (font-size
           (assoc-get 'font-size
             (ly:prob-property (ly:grob-property grob 'cause) 'tweaks)))
          (corr
           (if (number? font-size)
               (magstep font-size)
               1))
          (lne
           (make-line-stencil
            (* 1.9 corr line-thickness)
            0
            (/ (* 1.25 corr staff-space) -2)
            0
            (/ (* 1.25 corr staff-space) 2))))
     (ly:stencil-add
      lne
      (ly:stencil-translate-axis
       default-stil (* 0.95 corr line-thickness) X)
      (ly:stencil-translate-axis
       lne (+ (* 1.9 corr line-thickness) default-stil-x-lngth) X))))

#(set-global-staff-size 24)
\include "articulate.ly"

#(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))

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 (golo-schu layout props titel nr ton)
   (string? string? string?)
   (interpret-markup layout props
     #{
       \markup
       {
         \column {
           \override #'(baseline-skip . 2)
           \column
           {
             \fill-line \override #'(baseline-skip . 2.5) {
               \huge \larger \larger \bold
               \center-column
               {
                 $titel
                 \fontsize #-3 \line { "GL &numero; 711/" $nr \fontsize #-1 \concat { " (bis 2013 &numero; 802/" $nr ) } }
                 " "
               }
             }
             \column
             \fontsize #-1.5
             {
               \fill-line {
                 "T: Josel Ph. Neumann (1774-1849)" "M: Franz Schubert (1797-1828)"
               }
               \fill-line {
                 "Notensatz: lilypond.miraheze.org" "Deutsche Messe D872"
               }
               \fill-line {
                 "" \concat { "Originaltonart: " $ton "-Dur" }
               }
             }
           }
         }
       }
     #}
     )
   )

#(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)))

dropLyrics =
#(define-scheme-function (l)(number?)
   #{
     \override LyricText.extra-offset = #`(0 . ,l)
     \override LyricHyphen.extra-offset = #`(0 . ,l)
     \override LyricExtender.extra-offset = #`(0 . ,l)
     \override StanzaNumber.extra-offset = #`(0 . ,l)
   #}
   )

raiseLyrics = {
  \revert LyricText.extra-offset
  \revert LyricHyphen.extra-offset
  \revert LyricExtender.extra-offset
  \revert StanzaNumber.extra-offset
}

\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 = ##f
  scoreTitleMarkup =
  \markup {
    \override #'((baseline-skip . 2) )
    \column {
      \fill-line \override #'(baseline-skip . 2.5) {
        \huge \larger \larger \bold
        \center-column {
          \fromproperty #'header:title
          \fontsize #-2.5  {
            \fill-line { \fromproperty #'header:subtitle }
          }
          \fontsize #-3 \line {
            \text-fromproperty "GL &numero; " #'header:new-number ""
            \fontsize #-1
            \text-fromproperty " (bis 2013 &numero; " #'header:old-number ")"
          }
          " "
        }
      }
      \fontsize #-1.5 {
        \fill-line {
          \fromproperty #'header:poet \fromproperty #'header:composer
        }
        \fill-line {
          "Notensatz: lilypond.miraheze.org" ""
          \tonart-fromproperty "Originaltonart: " #'header:key  #'header:dur
        }
        \fill-line {
          \fromproperty  #'header:instrument
          \fromproperty  #'header:arranger
        }
      }
    }
  }
}

orgel =
%Notensatz für Orgelnoten 4stimmig + Text + Harmonisierung + Umbrüche
#(define-music-function (sop alt ten bas akk stru lyr p)
   (ly:music? ly:music? ly:music? ly:music? ly:music? ly:music? ly:music? ly:pitch?)
   #{
     <<
       \new ChordNames \transpose c $p $akk
       \new PianoStaff="leadsheet"
       <<
         \new Staff="up"
         <<
           \new Voice="Alt"
           \with { \consists Ambitus_engraver }
           { \voiceOne \transpose c $p $sop }
           \new Voice { \voiceTwo \transpose c $p $alt }
         >>
         \new Lyrics \lyricsto Alt $lyr
         \new Staff="down"
         <<
           \new Voice { \voiceOne \transpose c $p $ten }
           \new Voice { \voiceTwo \transpose c $p $bas }
           \new NullVoice $stru
         >>
       >>
     >>
   #}
   )

orgels =
%% simple orgelsatz nur SATBs kein Liedtext
#(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"
           \with { \consists Ambitus_engraver }
           { \voiceOne \transpose c $p $sop }
           \new Voice { \voiceTwo \transpose c $p $alt }
         >>
         \new Staff="down"
         <<
           \new Voice { \voiceOne \transpose c $p $ten }
           \new Voice { \voiceTwo \transpose c $p $bas }
           \new NullVoice $stru
         >>
       >>
     >>
   #}
   )

orgelo =
% keine Transponiermöglichkeit
#(define-music-function (sop alt ten bas akk stru lyr)
   (ly:music? ly:music? ly:music? ly:music? ly:music? ly:music? ly:music?)
   #{
     <<
       \new ChordNames $akk
       \new PianoStaff="leadsheet"
       <<
         \new Staff="up"
         <<
           \new Voice="Alt"
           \with { \consists Ambitus_engraver }
           { \voiceOne $sop }
           \new Voice { \voiceTwo $alt }
         >>
         \new Lyrics \lyricsto Alt $lyr
         \new Staff="down"
         <<
           \new Voice { \voiceOne $ten }
           \new Voice { \voiceTwo $bas }
           \new NullVoice $stru
         >>
       >>
     >>
   #}
   )

orgelp =
%% Orgelsatz mit Pedal
#(define-music-function (sop alt ten bas ped akk stru lyr p)
   (ly:music? ly:music? ly:music? ly:music? ly:music? ly:music? ly:music? ly:music? ly:pitch?)
   #{

     <<
       \new ChordNames \transpose c $p $akk
       \new PianoStaff="leadsheet"
       <<
         \new Staff="up"
         <<
           \new Voice="Alt"
           \with { \consists Ambitus_engraver }
           { \voiceOne \transpose c $p $sop }
           \new Voice { \voiceTwo \transpose c $p $alt }
         >>
         \new Lyrics \lyricsto Alt $lyr
         \new Staff="down"
         <<
           \new Voice { \voiceOne \transpose c $p $ten }
           \new Voice { \voiceTwo \transpose c $p $bas }
           \new NullVoice $stru
         >>

       >>
       \new StaffGroup
       \new Staff="Pedal" \with {
         \magnifyStaff #5/7
       }
       <<
         \new Voice \transpose c $p $ped
       >>
     >>
   #}
   )

orgelpo =
%% Orgelnoten mit Pedal ohne Transponierung
#(define-music-function (sop alt ten bas ped akk stru lyr)
   (ly:music? ly:music? ly:music? ly:music? ly:music? ly:music? ly:music? ly:music?)
   #{

     <<
       \new ChordNames $akk
       \new PianoStaff="leadsheet"
       <<
         \new Staff="up"
         <<
           \new Voice="Alt"
           \with { \consists Ambitus_engraver }
           { \voiceOne $sop }
           \new Voice { \voiceTwo $alt }
         >>
         \new Lyrics \lyricsto Alt $lyr
         \new Staff="down"
         <<
           \new Voice { \voiceOne $ten }
           \new Voice { \voiceTwo $bas }
           \new NullVoice $stru
         >>

       >>
       \new StaffGroup
       \new Staff="Pedal" \with {
         \magnifyStaff #5/7
       }
       <<
         \new Voice $ped
       >>
     >>
   #}
   )

orgelly =
%% eine 2. Textzeile unterhalb
#(define-music-function (sop alt ten bas akk stru lyr lyrii p)
   (ly:music? ly:music? ly:music? ly:music? ly:music? ly:music? ly:music? ly:music? ly:pitch?)
   #{
     <<
       \new ChordNames \transpose c $p $akk
       \new PianoStaff="leadsheet"
       <<
         \new Staff="up"
         <<
           \new Voice="Alt"
           \with { \consists Ambitus_engraver }
           { \voiceOne \transpose c $p $sop }
           \new Voice { \voiceTwo \transpose c $p $alt }
         >>
         \new Lyrics \lyricsto Alt $lyr
         \new Lyrics \lyricsto Alt $lyrii
         \new Staff="down"
         <<
           \new Voice { \voiceOne \transpose c $p $ten }
           \new Voice { \voiceTwo \transpose c $p $bas }
           \new NullVoice $stru
         >>
       >>
     >>
   #}
   )

orgelpre =
%Notensatz für Vorspiel 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="up"
       <<
         \new Staff="up"
         <<
           \new Voice="Alt" { \voiceOne \transpose c $p $sop }
           \new Voice { \voiceTwo \transpose c $p $alt }
         >>
         \new Staff="down"
         <<
           \new Voice { \voiceOne \transpose c $p $ten }
           \new Voice { \voiceTwo \transpose c $p $bas }
           \new NullVoice $stru
         >>
       >>
     >>
   #}
   )

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 (substring (ly:parser-output-name) 4))
         tempo)))
    tempolist))

formidi =
%erzeugen des Scores für Midi
#(define-music-function (sop alt ten bas voc)
   (ly:music? ly:music? ly:music? ly:music? ly:music?)
   #{
     <<
       \new Staff {
         \new Voice {
           \set Staff.midiInstrument = "choir aahs"
           $voc
         }
       }
       \new Staff <<
         \set Staff.midiInstrument = "Church Organ"
         \new Voice $sop
         \new Voice $alt
         \new Voice $ten
         \new Voice $bas
       >>
     >>
   #}
   )

#(define myMidi "C:/Manuela/_Lilypond/orgel/Golo/midi/")

midi-list =
#(define-void-function (name sop alt ten bas voc tempolist)
   ((string? #f) ly:music? ly:music? ly:music? ly:music? ly:music? list?)
   (for-each
    (lambda (tempo)
      (ly:book-process
       (apply
        ly:make-book
        $defaultpaper
        $defaultheader
        (list (scorify-music #{
          <<
            \unfoldRepeats \new Staff {
              \new Voice {
                \set Staff.midiInstrument = "choir aahs"
                $voc
              }
            }
            \unfoldRepeats \new Staff <<
              \set Staff.midiInstrument = "Church Organ"
              \new Voice $sop
              \new Voice $alt
              \new Voice $ten
              \new Voice $bas
            >>
          >>
                #})))
       $defaultpaper
       #{
         \midi {
           \tempo 4 = $tempo
         }
       #}
       (format #f "~a_~a"
         (or name (string-append myMidi (ly:parser-output-name)))
         tempo)))
    tempolist))

midi-list-paus =
#(define-void-function (name sop alt ten bas voc pause tempolist)
   ((string? #f) ly:music? ly:music? ly:music? ly:music? ly:music? ly:music? list?)
   (for-each
    (lambda (tempo)
      (ly:book-process
       (apply
        ly:make-book
        $defaultpaper
        $defaultheader
        (list (scorify-music #{
          <<
            \unfoldRepeats \new Staff {
              \new Voice {
                \set Staff.midiInstrument = "choir aahs"
                $pause $voc
              }
            }
            \unfoldRepeats
            <<
              \new Staff \with { midiInstrument = #"church organ" }
              { $pause $sop }
              \new Staff \with { midiInstrument = #"church organ" }
              { $pause $alt }
              \new Staff \with { midiInstrument = #"church organ" }
              { $pause $ten }
              \new Staff \with { midiInstrument = #"church organ" }
              { $pause $bas }
            >>
          >>
                #})))
       $defaultpaper
       #{
         \midi {
           \tempo 4 = $tempo
         }
       #}
       (format #f "~a_~a"
         (or name (string-append myMidi (ly:parser-output-name)))
         tempo)))
    tempolist))

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
   #}
   )

mynotes =
#(define-music-function (m n)
   (ly:duration? ly:duration?)
   #{
     \override Score.RehearsalMark.break-align-symbols = #'(time-signature)
     \once \override Score.RehearsalMark.self-alignment-X = #-1
     \mark \markup \concat { \fontsize #-3.5 \note { $m } #UP " /" \fontsize #-3.5 \note { $n } #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
     #}))



chExceptionMusic = {
  <c e gis>1-\markup "(m)"
  <c f g>1-\markup \super "4"
}

% Convert music to list and prepend to existing exceptions.
chExceptions = #(append
                 (sequential-music-to-chord-exceptions chExceptionMusic #t)
                 ignatzekExceptions)

\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
    \consists Horizontal_bracket_engraver
    \override HorizontalBracket.direction = #UP
    \override HorizontalBracket.bracket-flare = #'(0 . 0)
    \override HorizontalBracketText.text = \markup \italic "Intro"
    \override HorizontalBracket.shorten-pair = #'(.5 . .5)
  }
  \context {
    \Lyrics
    \override VerticalAxisGroup.staff-affinity = #CENTER
    \override LyricText.font-size = #-1.5
    \override StanzaNumber.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
    %     \consists Measure_spanner_engraver
    %     \override MeasureSpanner.text = \markup \italic "Intro"
  }
  \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
    chordNameExceptions = #chExceptions
    \override ChordName.self-alignment-X = #CENTER
    \override ChordName.font-name = #"Arial Narrow"
    \override ChordName.layer = #2
    \override ChordName.font-size = #-0.5
    noChordSymbol = ##f
    \consists Horizontal_bracket_engraver
    \override HorizontalBracket.direction = #UP
    \override HorizontalBracket.bracket-flare = #'(0 . 0)
    \override HorizontalBracketText.text = \markup \italic "Intro"
  }
  \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
  }
}

oob = { \once \override Score.BarNumber.stencil = ##f \bar "" }
bnf = \once \override Score.BarNumber.stencil = ##f

gloria = \markup \override #'(baseline-skip . 2) \left-column {
  \line { Gloria: Ehre sei Gott }
  \line {
    Stichwort: \italic "Herr, erbarme dich unser"
  }
  \line { manchmal sagt der P so etwas ähnliches wie \italic "Ehre sei Gott in der Höhe" }
}

sanctus = \markup \override #'(baseline-skip . 2) \left-column {
  \line { Lobpreis Gottes: Heilig, heilig, heilig }
  \line {
    Stichwort: \italic "und singen mit den Engeln das Lob deiner Herrlichkeit"
  }
}

antwortlied = \markup \override #'(baseline-skip . 2) \left-column {
  \line { Antwortlied: nach der ersten Lesung }
  \line {
    Stichwort: \italic "Wort des lebendigen Gottes"
  }
}

gabenbereitung = \markup \override #'(baseline-skip . 2) \left-column {
  \wordwrap { Gabenbereitung (Offertorium): Beginn der Eucharistiefeier, nach den Fürbitten }
  \vspace #.2
  \line {
    Stichwort: \italic "darum bitten wir durch Christus, unsern Herrn"
  }
}

agnus =  \markup \override #'(baseline-skip . 2) \left-column {
  \line { Agnus Dei: Pfarrer zerbricht Hostie in mehrere Teile }
  \line {
    wann: nach dem Friedensgruß
  }
}

danklied =  \markup \override #'(baseline-skip . 2) \left-column {
  \line { Danklied }
  \line {
    wann: nach der Kommunionausteilung
  }
}

auszug =   \markup \override #'(baseline-skip . 2) \left-column {
  \line { Auszug, Verabschiedung }
  \line {
    Stichwort: \italic "gehet hin in Frieden"
  }
}

halleljua =  \markup \override #'(baseline-skip . 3) \left-column {
  \line { 1x leise }
  \line {
    1x leise, Vorbeter singt
  }
  \line {
    1x laut, Gemeinde singt
  }
  \line { Vorbeter betet }
  \line {
    1x laut, Gemeinde singt
  }
}

noambitus = {
  \override AmbitusLine.stencil = ##f
  \override AmbitusNoteHead.stencil = ##f
}

myintro =
#(define-music-function (m) ((string? #f) )
   #{
     \override HorizontalBracketText.text = \markup \italic { "Intro" $m }
   #})

%% Zusatztext und extra-offset sind optional
%% es müssen beide Parameter angegeben werden, wenn einer angegeben wird
mybrack =
#(define-music-function (t n m) ((string? #f) (number? 3.5) ly:music?)
   #{
     {
       \once \override HorizontalBracket.Y-extent = #'(0 . 0)
       \once \override HorizontalBracketText.Y-extent = #'(0 . 0)
       \once \override HorizontalBracket.extra-offset = #`(0 . ,n)
       \once \override HorizontalBracketText.extra-offset = #`(0 . ,n)
       \once \override HorizontalBracketText.text =
       \markup \italic { "Intro" #(or t "") }
       <>\startGroup
       $m
       \stopGroup
     }
   #})

%% ein optionaler Parameter
%% n ... extra-offset, nach oben verschieben
%%       der Standardwert ist für einen ChordNames-context oberhalb berechnet
%% der Zusatztext wird auf \null gesetzt

mybrack-offset =
#(define-music-function (n m) ((number? 3.5) ly:music?)
   #{
     {
       \mybrack "" $n $m
     }
   #})

#(define (lined-nh grob)
   (let* ((default-stil (ly:note-head::print grob))
          (default-stil-x-lngth
           (interval-length (ly:stencil-extent default-stil X)))
          (line-thickness (ly:staff-symbol-line-thickness grob))
          (staff-space (ly:staff-symbol-staff-space grob))
          (font-size
           (assoc-get 'font-size
             (ly:prob-property (ly:grob-property grob 'cause) 'tweaks)))
          (corr
           (if (number? font-size)
               (magstep font-size)
               1))
          (lne
           (make-line-stencil
            (* 1.9 corr line-thickness)
            0
            (/ (* 1.25 corr staff-space) -2)
            0
            (/ (* 1.25 corr staff-space) 2))))
     (ly:stencil-add
      lne
      (ly:stencil-translate-axis
       default-stil (* 0.95 corr line-thickness) X)
      (ly:stencil-translate-axis
       lne (+ (* 1.9 corr line-thickness) default-stil-x-lngth) X))))

\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
    \consists Horizontal_bracket_engraver
    \override HorizontalBracket.direction = #UP
    \override HorizontalBracket.bracket-flare = #'(0 . 0)
    \override HorizontalBracketText.text = \markup \italic "Intro"
    \override HorizontalBracket.shorten-pair = #'(.5 . .5) %% schaut schöner aus über den Akkorden
  }
  \context {
    \Lyrics
    \override VerticalAxisGroup.staff-affinity = #CENTER
  }
  \context {
    \Staff
    printPartCombineTexts = ##f
    beamExceptions = #'()
    \override BreathingSign.text =
    \markup { \musicglyph "scripts.lvarcomma" }
    \override InstrumentName.font-features = #'("smcp")
  }
  \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.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
  }
}

oob = { \once \override Score.BarNumber.stencil = ##f \bar "" }

gloria = \markup \override #'(baseline-skip . 2) \left-column {
  \line { Gloria: Ehre sei Gott }
  \line {
    Stichwort: \italic "Herr, erbarme dich unser"
  }
  \line { manchmal sagt der P so etwas ähnliches wie \italic "Ehre sei Gott in der Höhe" }
}

sanctus = \markup \override #'(baseline-skip . 2) \left-column {
  \line { Lobpreis Gottes: Heilig, heilig, heilig }
  \line {
    Stichwort: \italic "und singen mit den Engeln das Lob deiner Herrlichkeit"
  }
}

antwortlied = \markup \override #'(baseline-skip . 2) \left-column {
  \line { Antwortlied: nach der ersten Lesung }
  \line {
    Stichwort: \italic "Wort des lebendigen Gottes"
  }
}

gabenbereitung = \markup \override #'(baseline-skip . 2) \left-column {
  \wordwrap { Gabenbereitung (Offertorium): Beginn der Eucharistiefeier, nach den Fürbitten }
  \vspace #.2
  \line {
    Stichwort: \italic "darum bitten wir durch Christus, unsern Herrn"
  }
}

agnus =  \markup \override #'(baseline-skip . 2) \left-column {
  \line { Agnus Dei: Pfarrer zerbricht Hostie in mehrere Teile }
  \line {
    wann: nach dem Friedensgruß
  }
}

danklied =  \markup \override #'(baseline-skip . 2) \left-column {
  \line { Danklied }
  \line {
    wann: nach der Kommunionausteilung
  }
}

auszug =   \markup \override #'(baseline-skip . 2) \left-column {
  \line { Auszug, Verabschiedung }
  \line {
    Stichwort: \italic "gehet hin in Frieden"
  }
}

halleljua =  \markup \override #'(baseline-skip . 3) \left-column {
  \line { 1x leise }
  \line {
    1x leise, Vorbeter singt
  }
  \line {
    1x laut, Gemeinde singt
  }
  \line { Vorbeter betet }
  \line {
    1x laut, Gemeinde singt
  }
}

noambitus = {
  \override AmbitusLine.stencil = ##f
  \override AmbitusNoteHead.stencil = ##f
}
\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
    \consists Horizontal_bracket_engraver
    \override HorizontalBracket.direction = #UP
    \override HorizontalBracket.bracket-flare = #'(0 . 0)
    \override HorizontalBracketText.text = \markup \italic "Intro"
    \override HorizontalBracket.shorten-pair = #'(.5 . .5) %% schaut schöner aus über den Akkorden
  }
  \context {
    \Lyrics
    \override VerticalAxisGroup.staff-affinity = #CENTER
  }
  \context {
    \Staff
    printPartCombineTexts = ##f
    beamExceptions = #'()
    \override BreathingSign.text =
    \markup { \musicglyph "scripts.lvarcomma" }
    \override InstrumentName.font-features = #'("smcp")
  }
  \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.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
  }
}

oob = { \once \override Score.BarNumber.stencil = ##f \bar "" }

gloria = \markup \override #'(baseline-skip . 2) \left-column {
  \line { Gloria: Ehre sei Gott }
  \line {
    Stichwort: \italic "Herr, erbarme dich unser"
  }
  \line { manchmal sagt der P so etwas ähnliches wie \italic "Ehre sei Gott in der Höhe" }
}

sanctus = \markup \override #'(baseline-skip . 2) \left-column {
  \line { Lobpreis Gottes: Heilig, heilig, heilig }
  \line {
    Stichwort: \italic "und singen mit den Engeln das Lob deiner Herrlichkeit"
  }
}

antwortlied = \markup \override #'(baseline-skip . 2) \left-column {
  \line { Antwortlied: nach der ersten Lesung }
  \line {
    Stichwort: \italic "Wort des lebendigen Gottes"
  }
}

gabenbereitung = \markup \override #'(baseline-skip . 2) \left-column {
  \wordwrap { Gabenbereitung (Offertorium): Beginn der Eucharistiefeier, nach den Fürbitten }
  \vspace #.2
  \line {
    Stichwort: \italic "darum bitten wir durch Christus, unsern Herrn"
  }
}

agnus =  \markup \override #'(baseline-skip . 2) \left-column {
  \line { Agnus Dei: Pfarrer zerbricht Hostie in mehrere Teile }
  \line {
    wann: nach dem Friedensgruß
  }
}

danklied =  \markup \override #'(baseline-skip . 2) \left-column {
  \line { Danklied }
  \line {
    wann: nach der Kommunionausteilung
  }
}

auszug =   \markup \override #'(baseline-skip . 2) \left-column {
  \line { Auszug, Verabschiedung }
  \line {
    Stichwort: \italic "gehet hin in Frieden"
  }
}

halleljua =  \markup \override #'(baseline-skip . 3) \left-column {
  \line { 1x leise }
  \line {
    1x leise, Vorbeter singt
  }
  \line {
    1x laut, Gemeinde singt
  }
  \line { Vorbeter betet }
  \line {
    1x laut, Gemeinde singt
  }
}

noambitus = {
  \override AmbitusLine.stencil = ##f
  \override AmbitusNoteHead.stencil = ##f
}