Präludium C Dur BWV 846/pre

Zur Navigation springen Zur Suche springen

Lilypond Score

\version "2.20.0"
\language "deutsch"
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))

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

\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 {
    \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 = #'()
    barNumberVisibility = #all-bar-numbers-visible
    \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
  }
  \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 {
    \Lyrics
    \override VerticalAxisGroup.staff-affinity = #CENTER
  }
}

RH=  \relative c'' {
  \time 4/4
  \clef treble
  \key c \major
  r8
  %\shapeSlur #'(-4 -12 0 0 0 4 0 1)
  %\offsetPositions #'(-4 . 3)
  g16 c e g, c e r8 g,16 c e g, c e
  r8 a,16 d f a, d f r8 a,16 d f a, d f
  r8 g,16 d' f g, d' f r8 g,16 d' f g, d' f |
  r8 g,16 c e g, c e r8 g,16 c e g, c e
  r8 a,16 e' a a, e' a r8 a,16 e' a a, e' a
  r8 fis,16 a d fis, a d r8 fis,16 a d fis, a d |
  r8 g,16 d' g g, d' g r8 g,16 d' g g, d' g
  r8 e,16 g c e, g c r8 e,16 g c e, g c
  r8 e,16 g c e, g c r8 e,16 g c e, g c |
  %% 10
  r8 d,16 fis c' d, fis c' r8 d,16 fis c' d, fis c'
  r8 d,16 g h d, g h r8 d,16 g h d, g h
  r8 e,16 g cis e, g cis r8 e,16 g cis e, g cis |
  r8 d,16 a' d d, a' d r8 d,16 a' d d, a' d
  r8 d,16 f h d, f h r8 d,16 f h d, f h
  r8 c,16 g' c c, g' c r8 c,16 g' c c, g' c |
  r8 a,16 c f a, c f r8 a,16 c f a, c f
  r8 a,16 c f a, c f r8 a,16 c f a, c f
  r8 g,16 h f' g, h f' r8 g,16 h f' g, h f' |
  r8 g,16 c e g, c e r8 g,16 c e g, c e
  %% 20
  r8 b16 c e b c e r8 b16 c e b c e
  r8 a,16 c e a, c e r8 a,16 c e a, c e |
  r8 a,16 c es a, c es r8 a,16 c es a, c es
  r8 h16 c es h c es r8 h16 c es h c es
  r8 h16 c d h c d r8 h16 c d h c d
  r8 g,16 h d g, h d r8 g,16 h d g, h d |
  r8 g,16 c e g, c e r8 g,16 c e g, c e
  r8 g,16 c f g, c f r8 g,16 c f g, c f
  r8 g,16 h f' g, h f' r8 g,16 h f' g, h f' |
  r8 a,16 c fis a, c fis r8 a,16 c fis a, c fis
  r8 g,16 c g' g, c g' r8 g,16 c g' g, c g'
  %% 30
  r8 g,16 c f g, c f r8 g,16 c f g, c f |
  r8 g,16 h f' g, h f' r8 g,16 h f' g, h f'
  r8 g,16 b e g, b e r8 g,16 b e g, b e |
  r8
  \stemUp
  \change Staff = "Bass"
  f,16 a
  \change Staff = "Discant"
  c f c a
  \change Staff = "Bass"
  c a f a f d f d
  \change Staff = "Discant"
  \stemNeutral
  \clef "violin"
  r8 g'16 h d f d h d h g h d, f e d
  <e g c>1\fermata
  \bar "|."
}

LH = \relative c' {
  \clef bass
  \key c \major
  <<
    {
      r16 e8. ~ e4 r16 e8. ~ e4
      r16 d8. ~ d4 r16 d8. ~ d4
      r16 d8. ~ d4 r16 d8. ~ d4
      r16 e8. ~ e4 r16 e8. ~ e4
      r16 e8. ~ e4 r16 e8. ~ e4
      r16 d8. ~ d4 r16 d8. ~ d4
      r16 d8. ~ d4 r16 d8. ~ d4
      r16 c8. ~ c4 r16 c8. ~ c4
      r16 c8. ~ c4 r16 c8. ~ c4
      %% 10
      r16 a8. ~ a4 r16 a8. ~ a4
      r16 h8. ~ h4 r16 h8. ~ h4
      r16 b8. ~ b4 r16 b8. ~ b4
      r16 a8. ~ a4 r16 a8. ~ a4
      r16 as8. ~ as4 r16 as8. ~ as4
      r16 g8. ~ g4 r16 g8. ~ g4
      r16 f8. ~ f4 r16 f8. ~ f4
      r16 f8. ~ f4 r16 f8. ~ f4
      r16 d8. ~ d4 r16 d8. ~ d4
      r16 e8. ~ e4 r16 e8. ~ e4
      %% 20
      r16 g8. ~ g4 r16 g8. ~ g4
      r16 f8. ~ f4 r16 f8. ~ f4
      r16 c8. ~ c4 r16 c8. ~ c4
      r16 es8. ~ 4 r16 es8. ~ 4
      r16 f8. ~ f4 r16 f8. ~ f4
      r16 f8. ~ f4 r16 f8. ~ f4
      r16 e8. ~ e4 r16 e8. ~ e4
      r16 d8. ~ d4 r16 d8. ~ d4
      r16 d8. ~ d4 r16 d8. ~ d4
      r16 es8. ~ es4 r16 es8. ~ es4
      r16 e!8. ~ e4 r16 e8. ~ e4
      %% 30
      r16 d8. ~ d4 r16 d8. ~ d4
      r16 d8. ~ d4 r16 d8. ~ d4
      r16 c8. ~ c4 r16 c8. ~ c4

      r16 c8._~ c4_~ \stemDown c2
      r16 h8. ~ h4 ~ h2
      c1 %\arpeggio
    } \\ {
      %% 0
      c'2 c
      c c
      h h
      c c
      c c
      c c
      h h
      h h
      a a
      %% 10
      d,2 d
      g g
      g g
      f f
      f f
      e e
      e e
      d d
      g, g
      c c
      %% 20
      c c
      f, f
      fis fis
      g g
      as as
      g g
      g g
      g g
      g g
      g g
      g g
      %% 30
      g g
      g g
      c, c

      c1
      c
      c\fermata
    }
  >>
}

Struktur =
{
  \override Score.SpacingSpanner.base-shortest-duration = #(ly:make-moment 1/1)
  \override Score.SpacingSpanner.common-shortest-duration = #(ly:make-moment 1/1)
  %\override PianoStaff.VerticalAxisGroup.staff-staff-spacing.padding = #5
}

Akk=
\chordmode {
  c1 d:m7/c g:7/h c a:m/c
  d:7/c g/h c:maj7/h
  a:m7 d:7 g cis:dim7/g
  d:m/f h:dim7/f
  c/e f:maj7/e d:m7
  g:7 c c:7 f:maj7
  fis:dim7 c:maj7.3-/g
  h:dim7/as g:7 c/g
  g:7sus4 g:7 fis:dim7/g
  c/g g:7sus4 g:7
  c:7 d:m7/c c:maj
}

\bookpart {
  \paper {
    annotate-spacing = ##f
    system-system-spacing.minimum-distance = #4
    system-system-spacing.basic-distance = #4
    system-system-spacing.padding = #0
    top-margin = 20\mm
    ragged-right = ##f
    ragged-last = ##f
    ragged-bottom = #f
    ragged-last-bottom = ##f
    bottom-margin = 20\mm
    indent = #0
    line-width = 175\mm
    print-all-headers = ##f
    #(include-special-characters)
    print-first-page-number = ##t
    first-page-number = #1
    oddFooterMarkup = ##f
    evenFooterMarkup = ##f
    annotate-spacing = ##f
  }
  \header {
    title = \myTitel
    subtitle = "Wohltemperiertes Klavier I, BVW 846"
    subsubtitle = ##f
    opus = ##f
    composer = "Johann Sebastian Bach (1685-1750)"
    piece = ##f
    poet = ##f
  }
  \score
  {
    <<
      \new ChordNames \Akk
      \new PianoStaff="leadsheet"
      <<
        \new Staff="Discant"
        <<
          \RH
          \new NullVoice \Struktur
        >>
        \new Staff="Bass"
        <<
          \new Voice \relative c' \LH
        >>
      >>
    >>
  }
}