Ozhidanie/score

Zur Navigation springen Zur Suche springen

Lilypond Score

\version "2.20.0"
\language "deutsch"

myTitel = "Ozhidanje"

mycomp=\markup \right-column \fontsize #-1.5 {
  "trad."
  "arr: Peter M. Haas"
}

AkkI = {
  \set Staff.shortInstrumentName = \markup \caps "Akk I"
  \set Staff.instrumentName = \markup \caps "Akk I"
}

AkkII = {
  \set Staff.shortInstrumentName = \markup \caps "Akk II"
  \set Staff.instrumentName = \markup \caps "Akk II"
}

AkkIII = {
  \set Staff.shortInstrumentName = \markup \caps "Akk III"
  \set Staff.instrumentName = \markup \caps "Akk III"
}

AkkIV = {
  \set Staff.shortInstrumentName = \markup \caps "Akk IV"
  \set Staff.instrumentName = \markup \caps "Akk IV"
}

BassI = {
  \set Staff.shortInstrumentName = \markup \caps "Bass"
  \set Staff.instrumentName = \markup \caps "Bass"
}

myGrace = \once \override Slur.details.max-slope = 0

chExBass = {
  <c es g heses>1-\markup \whiteout { "m" }  %% halbverminderter Septakkord
  <c es g b d'>1-\markup \whiteout { "m" } %% c:m9
  <c es ges b d'>1-\markup \whiteout { "m)" \hspace #-3.4 "(" } %% c:m9.5- eingeklammerter Akkord für einbuchstabige AKkordnamen
  <c es g b>1-\markup { "7" }    %% c:m7
  < c es g b d' f' a' >1-\markup { \normal-size-super "o" }  %% c:m13
  <c es g b d' f'>1-\markup { \fontsize #-0.5 "(7)" }  %% c:m11, die 7 in Klammer
}

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

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

#(define (note-name->my-german-markup pitch lowercase?)
   (let* ((name (ly:pitch-notename pitch))
          (alt-semitones (pitch-alteration-semitones pitch))
          (n-a (if (member (cons name alt-semitones) `((6 . -1) (6 . -2)))
                   (cons 7 (+ 1 alt-semitones))
                   (cons name alt-semitones))))
     (make-line-markup
      (list
       (string-append
        (list-ref '("C" "D" "E" "F" "G" "A" "H" "B") (car n-a))
        (if (or (equal? (car n-a) 2) (equal? (car n-a) 5))
            (list-ref '( "ses" "s" "" "is" "isis") (+ 2 (cdr n-a)))
            (list-ref '("eses" "es" "" "is" "isis") (+ 2 (cdr n-a)))))))))

#(define (note-name->underlined-markup pitch lowercase?)
   "Return pitch markup for @var{pitch}."
   (make-underline-markup
    (make-line-markup
     (list
      (make-simple-markup
       (conditional-string-downcase
        (vector-ref #("C" "D" "E" "F" "G" "A" "B") (ly:pitch-notename pitch))
        lowercase?))
      (accidental->markup (ly:pitch-alteration pitch))))))

#(define (note-name->german-underlined-markup pitch lowercase?)
   (make-underline-markup
    (make-line-markup
     (list
      ((chord-name->german-markup-text-alteration #t) pitch lowercase?)))))

gRoot= \once \set ChordNames.chordRootNamer = #note-name->german-underlined-markup

chExceptionMusic = {
  <c es g heses>1-\markup \whiteout { "m" }  %% halbverminderter Septakkord
  <c es g b d'>1-\markup \whiteout { "m" } %% c:m9
  <c es ges b d'>1-\markup \whiteout { "m)" \hspace #-3.4 "(" } %% c:m9.5- eingeklammerter Akkord für einbuchstabige AKkordnamen
  %<c es g b>1-\markup { "7" }    %% c:m7
  < c es g b d' f' a' >1-\markup { "v" }  %% c:m13
  <c es g b d' f'>1-\markup { \fontsize #-0.5 "(7)" }  %% c:m11, die 7 in Klammer
}

chUpperBass =
{
  <c g>1-\markup { "" }
}

chExBasses =
#(append
  (sequential-music-to-chord-exceptions chExBass #t)
  (sequential-music-to-chord-exceptions chUpperBass #t)
  ignatzekExceptions)

firstNote =
#(define-music-function (music )
   (ly:music?)
   (event-chord-reduce music))

#(use-modules (scm accreg))
myBlue = #(x11-color 'sienna4)

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

\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
    beamExceptions = #'()
    \override BreathingSign.text =
    \markup { \musicglyph #"scripts.lvarcomma" }
    \override InstrumentName.font-features = #'("smcp")
    \RemoveEmptyStaves
  }
  \context {
    \ChordNames
    chordNameLowercaseMinor = ##t
    chordNameExceptions = #chExBasses
    \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 {
    \ChordNames
    \name SecondChords
    \alias ChordNames
    \override Rest.stencil = ##f
    alignAboveContext = #"oben"
  }

  \context {
    \Score
    \accepts SecondChords
    \accepts BarNumberStaff
    \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
  }
  \context {
    \Dynamics
    \override Hairpin.to-barline = ##f
    alignBelowContext = melodie
    \override TextSpanner.outside-staff-priority = ##f
    \override TextSpanner.padding = #'()
    \override DynamicText.outside-staff-priority = ##f
    \override DynamicText.padding = #4
  }
  \context {
    \RhythmicStaff
    \consists Clef_engraver
    clefGlyph = #"clefs.percussion"
    clefPosition = #0
    printPartCombineTexts = ##f
    fontSize = #-1
    \override StaffSymbol.staff-space = #(magstep -1)
    \remove Ledger_line_engraver
    \override NoteColumn.before-line-breaking =
    #(lambda (grob)
       (let* ((pap-col (ly:grob-parent grob X))
              (pap-col-elts (ly:grob-object pap-col 'elements))
              (chord-names
               (if (ly:grob-array? pap-col-elts)
                   (filter
                    (lambda (elt)
                      (grob::has-interface elt 'chord-name-interface))
                    (ly:grob-array->list pap-col-elts))
                   '())))
         (for-each
          (lambda (chrd)
            (ly:grob-set-parent! chrd X grob))
          chord-names)))
  }
  \context {
    \StaffGroup
    \accepts SecondChords
  }
}

%% diese Stimme gibt den Rhythmus der Noten an
dmol = \chordmode { d4 d:m9 q }
dmoa = \chordmode { d4 d:m9 q }
weba = { \dmol \dmoa }
asib = \chordmode { a4 a:m7 q }
csib = \chordmode { c4 c:m7 q }
aswe = \chordmode { a4 a:m7 q a a:m7 q }
gmol = \chordmode { g4 g:m9 q }
fdur = \chordmode { f4 f:m q }


Bassi = \chordmode {
  \BassI

  r4
  \repeat unfold 3 \weba
  \repeat unfold 4 \aswe
  \repeat unfold 3 \weba
  \dmol
  c c:m7 q f f:m q c f:m q
  g g:m9 q g g:m9 q
  \dmol \dmol
  \aswe \dmol
  \once \override TextScript.X-offset = #-3
  d%_\markup { \with-color #white \italic Fine \musicglyph #"scripts.dfermata" }
  r r
  \repeat unfold 4 \dmol
  \repeat unfold 4 \gmol
  \asib \asib
  \dmol \dmol
  \asib \asib
  \dmol \dmol
  d r r
  \csib \csib
  \fdur \fdur
  d d:m7 q d d:m7 q
  \gmol \gmol \gmol
  \csib \fdur \fdur
  \csib \csib \fdur
  f r r f r%_\markup \italic { D.C. al Fine }
}

%% traditionelle Akkordnotation

AccordionI= \relative c' {
  \AkkI
  \key f \major
  \time 3/4
  \partial 4
  a4
  b2 a4 d2 e4
  f2. ~ 4 d e4f4. e8 d4
  f2 f4 e2. ~ 2 a,4
  b2 a4 e'2 f4
  g2. ~ 4 e f
  g4. f8 e4
  g a b
  a2. ~ 2 a,4
  b2 a4 d2 e4
  f2. ~ 4 d e
  f4. e8 f4 g f g
  a2. ~ 4 b-. a-.
  g4. f8 e4
  r4 a-. g-. f4. e8 d4
  r4 g-. f-. e2 b'4
  a2 cis,4
  \override TextScript.X-offset = #-3
  d2. ~ 4 ^\markup { \italic Fine \musicglyph #"scripts.ufermata" }
  a'-. f-.
  a2. ~ 4 4. f8
  a2. ~ 4 b-. g-.
  b2. ~ 4 4. g8
  b2. ~ 4 e,-. f-.
  g2 4 g f g
  a2. ~ 4 g-. f-.
  e4. a8 b a
  cis,4. a'8 b a
  d,2. ~ 4 a'-. f-.
  d\repeatTie d'-! des-!
  c2. ~ 4 b4. g8
  a2.
  r4 es'-. d-. d2. ~ 4 c4. a8
  b2. r4 g-. a-.
  b2. ~ 4 g d'
  c2. ~ 4 a f
  c4. e8 g b
  d2 c4
  f,2. ~ 4 d'-! des-!
  f,\repeatTie r
}

AccordionII= \relative c' {
  \key f \major
  \AkkII
  r4 R2. R2.
  r4 a b
  a2. ~ 4 r r
  R2. r4 a' b
  a g e
  cis2. ~ 4 r r
  r4 a b a2. ~ 4 r r
  R2. r4 a' b
  a f e d2. ~ d
  r4 a h cis d e d2. c
  c2. ~ 4 r r
  b'4. a8 g f e2 r4
  a4. g8 f e f2 r4
  g4. f8 e d
  cis4 d e
  \override TextScript.X-offset = #-3
  d2. ~ d4 ^\markup { \whiteout \italic Fine \musicglyph #"scripts.ufermata" }
  r4 r
  r d' a d2.
  r4 d4. a8 d2.
  r4 d b d2.
  r4 d4. b8 d2.
  r4 g, a b a g
  r f g a b a
  cis,2. a'
  d,4 f a d2 r4 d, r r
  < e c >2.-1-2 q4 < f d >-1-3 < g e >-2-4
  < a f >2.-3-5 ~ q
  < a fis >-1-2 q4 < b g > < c a >
  < d b >2. ~ q g,-3
  e-1 a f
  e ~ e
  f4 a c f, r r f r
}

RhyI= {
  \clef percussion
  r4
  \repeat unfold 93 c'4
  c_\markup { \with-color #white \italic Fine \musicglyph #"scripts.dfermata" }  r r
  \repeat unfold 48 c'4
  c r r
  \repeat unfold 45 c4
  c r r c r_\markup \italic { D.C. al Fine }
}

Struktur = {
  \mark \markup \vcenter { \box A \discant #"10" }
  \hideNotes
  s4
  s2.*31
  c2_\markup { \whiteout \italic Fine \musicglyph #"scripts.ufermata" } s4
  \bar ".|:-||"
  \pageBreak
  \mark \markup \circle B
  \repeat volta 2 {
    s2. *15
  }
  \alternative
  {
    {
      s2.
    }
    {
      s
    }
  }
  \mark \markup \circle C
  \bar ".|:-||"
  \repeat volta 2 {
    s2. *15
  }
  \alternative
  {
    {
      s2.
    }
    {
      s2
    }
  }
  \bar "||"
}

Dyn = {
  s4
  s2. * 16
  s2.\p\< s s s s s s\f\>
  s\dynamictext \markup { \dynamic "mf" "/" \dynamic "p" }
  s\dynamictext \markup { \dynamic "mf" "/" \dynamic "p" }
  s2. * 7
  s2.\dynamictext \markup \whiteout { \italic "fröhlich" \dynamic "mf" }
  s2. * 16
  s2.\p\< s s s s s s\f\> s\! s
  s\p
}

%% Artikulationszeichen im Bassbereich
Punkte =  {
  \override Script.direction = #UP
  \override Script.padding = #1.5
  s4
}

kopf=\header {
  title = \markup \line
  {
    %\fontsize #-3
    %\number \score-sequence #sequence-number
    #myTitel
  }
  subtitle = "Erwartung"
  subsubtitle = ##f
  poet = ##f
  composer = \markup { #mycomp }
  piece = ##f
  opus = ##f
}

\paper {
  indent = 0
  top-margin = 0\mm
  ragged-right = ##f
  ragged-last = ##f
  ragged-bottom = ##t
  ragged-last-bottom = ##f
  bottom-margin = 10\mm
  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
  top-markup-spacing.padding = #10
  system-system-spacing.padding = #10
  top-system-spacing = #top-markup-spacing
}

\bookpart {
  %\include "_index.ly"
  %\bookOutputName "Ozhidanje"
  \paper {
    system-system-spacing.padding = #4
    ragged-bottom = ##f
    ragged-last-bottom = ##f
    last-bottom-spacing = #'((basic-distance . 20)
                             (minimum-distance . 10)
                             (padding . 0)
                             (stretchability . 10))
    last-bottom-spacing = #'((basic-distance . 10)
                             (minimum-distance . 5)
                             (padding . 0)
                             (stretchability . 50))
    system-system-spacing = #'((basic-distance . 14)
                               (stretchability . 50)
                               (minimum-distance . 5))
    top-markup-spacing = #'((basic-distance . 8)
                            (padding . 10)
                            (stretchability . 30))
    top-system-spacing = #'((basic-distance . 10)
                            (padding . 5)
                            (stretchability . 50))
    markup-system-spacing  = #'((basic-distance . 8)
                                (minimum-distance . 5)
                                (padding . 0)
                                (stretchability . 30))
  }
  \kopf
  \score {
    \new StaffGroup
    <<
      \new Staff
      \new Voice \AccordionI
      \new Dynamics \Dyn
      \new Staff \new Voice \AccordionII
      \new Dynamics \Dyn
      \new ChordNames="oben"
      {
        \override Rest.stencil = ##f
        \clef percussion
        \Bassi
      }
      \new RhythmicStaff
      <<
        \new Voice
        {
          \BassI
          \RhyI
        }
        \new NullVoice \Struktur
      >>
    >>
  }
}