Alle leitereigenen Drei Vier Fünfklänge/mehrklang

Zur Navigation springen Zur Suche springen
#(define-markup-command (umkehrung layout props nr)
   (string?)
   (interpret-markup layout props
     #{
       \markup \fontsize #2 \override #'(font-features . ("smcp" "onum"))
       \center-column { $nr "Um-""kehrung" }
     #}
     ))

#(define-markup-command (grund layout props)
   ()
   (interpret-markup layout props
     #{
       \markup \fontsize #2 \override #'(font-features . ("smcp"))
       \center-column { "Grund-""Stellung" }
     #}
     ))

#(define-markup-command (tonlei layout props)
   ()
   (interpret-markup layout props
     #{
       \markup \fontsize #2 \override #'(font-features . ("smcp"))
       \center-column { "Tonleiter" }
     #}
     ))

drei =
#(define-music-function (p leiter tonart)
   (ly:pitch? ly:music? list?)
   (let* ((was (ly:pitch-notename p))
          (o1 (cond
               ((equal? was 2) 0) ; e
               ((equal? was 3) 0) ; f
               ((equal? was 4) 0) ; g
               (else -1)))
          (o2 (cond
               ((equal? was 2) 0) ; e
               ((equal? was 3) 0) ; f
               ((equal? was 4) 0) ; g
               (else -1)))
          (o3 (cond
               ((equal? was 2) 0) ; e
               ((equal? was 3) 0) ; f
               ((equal? was 4) 1) ; g
               (else 0)))
          ;(o4 -1)
          (o4 (cond
               ((equal? was 2) -1)  ; e
               ((equal? was 3) -1)  ; f
               ((equal? was 4) 0) ; g
               (else -1)))
          (u1 (if (equal? was 4) 2 1))
          (u2 (cond
               ((equal? was 2) 1) ; e
               ((equal? was 3) 2) ; f
               ((equal? was 4) 2) ; g
               (else 1)))
          (u3 (cond
               ((equal? was 2) 2) ; e
               ((equal? was 3) 2) ; f
               ((equal? was 4) 2) ; g
               (else 1)))
          (u4 (cond
               ((equal? was 2) 1)  ; e
               ((equal? was 3) 1)  ; f
               ((equal? was 4) 1) ; g
               (else 1)))
          )
     ;(display was)
     #{
       <<
         <<
           \new PianoStaff
           \with {
             instrumentName = \markup \tonlei
           }
           \new Voice \transpose c $p
           {
             \key c $tonart $leiter
           }
           \new Dynamics \DurStufen
         >>
         \new PianoStaff
         \with {
           instrumentName = \markup \grund
         }
         <<
           \new Staff \transpose #(ly:make-pitch -1 0) $p
           {
             \key c $tonart \CreateIntervals $leiter #3
           }
           \new ChordNames \transpose c $p \CreateIntervals $leiter #3
           \new Staff \transpose #(ly:make-pitch 1 0) $p
           {
             \clef bass \key c $tonart \CreateIntervals $leiter #3
           }
           \new Dynamics \DurStufen
         >>
         \new PianoStaff
         \with {
           instrumentName = \markup \umkehrung #"1."
         }
         <<
           \new Staff \transpose #(ly:make-pitch o1 0) $p
           {
             \key c $tonart \CreateIntervals \shiftMus $leiter #2 #'(3 4)
           }
           \new ChordNames \transpose c $p \CreateIntervals $leiter #3
           \new Staff \transpose #(ly:make-pitch u1 0) $p
           {
             \clef bass \key c $tonart \CreateIntervals \shiftMus $leiter #2 #'(3 4)
           }
           \new Dynamics \DurStufen
         >>
         \new PianoStaff
         \with {
           instrumentName = \markup \umkehrung #"2."
         }
         <<
           \new Staff \transpose #(ly:make-pitch o2 0) $p
           {
             \key c $tonart \CreateIntervals \shiftMus $leiter #4 #'(4 3)
           }
           \new ChordNames \transpose c $p \CreateIntervals $leiter #3
           \new Staff \transpose #(ly:make-pitch u2 0) $p
           {
             \clef bass \key c $tonart \CreateIntervals \shiftMus $leiter #4 #'(4 3)
           }
           \new Dynamics \DurStufen
         >>
       >>
     #}
     ))

dreik =
#(define-scheme-function (p leiter tonart)
   (ly:pitch? ly:music? list?)
   (scorify-music (drei p leiter tonart)))

vier =
#(define-music-function (p leiter tonart)
   (ly:pitch? ly:music? list?)
   (let* ((was (ly:pitch-notename p))
          (o1 (cond
               ((equal? was 2) 0) ; e
               ((equal? was 3) 0) ; f
               ((equal? was 4) 0) ; g
               (else -1)))
          (o2 (cond
               ;((equal? was 1) 0) ; d
               ((equal? was 2) 0) ; e
               ((equal? was 3) 0) ; f
               ((equal? was 4) 0) ; g
               (else -1)))
          (o3 (cond
               ((equal? was 2) 0) ; e
               ((equal? was 3) 0) ; f
               ((equal? was 4) 1) ; g
               (else 0)))
          ;(o4 -1)
          (o4 (cond
               ((equal? was 2) -1)  ; e
               ((equal? was 3) -1)  ; f
               ((equal? was 4) 0) ; g
               (else -1)))
          (u1 (if (equal? was 4) 2 1))
          (u2 (cond
               ((equal? was 2) 1) ; e
               ((equal? was 3) 2) ; f
               ((equal? was 4) 2) ; g
               (else 1)))
          (u3 (cond
               ((equal? was 2) 2) ; e
               ((equal? was 3) 2) ; f
               ((equal? was 4) 2) ; g
               (else 1)))
          (u4 (cond
               ((equal? was 2) 1)  ; e
               ((equal? was 3) 1)  ; f
               ((equal? was 4) 1) ; g
               (else 1)))
          )
     ;(display was)
     #{
       {
         <<
           <<
             \new PianoStaff
             \with {
               instrumentName = \markup \tonlei
             }
             \new Voice \transpose c $p
             {
               \key c $tonart $leiter
             }
             \new Dynamics \DurStufen
           >>
           \new PianoStaff
           \with {
             instrumentName = \markup \grund
           }
           {
             <<
               \new Staff \new Voice \transpose c $p
               {
                 \key c $tonart \CreateIntervals $leiter #4
               }
               \context Voice \Stufen
               \new ChordNames \transpose c $p \CreateIntervals $leiter #4
               \new Staff \transpose c'' $p
               {
                 \clef bass \key c $tonart \CreateIntervals $leiter #4
               }
             >>
           }
           \new PianoStaff
           \with {
             instrumentName = \markup \umkehrung "1."
           }
           {
             <<
               \new Staff \new Voice \transpose #(ly:make-pitch o1 0) $p
               {
                 \key c $tonart \CreateIntervals \shiftMus $leiter #2 #'( 3 3 2)
               }
               \context Voice \Stufen
               \new ChordNames \transpose c $p \CreateIntervals $leiter #4
               \new Staff \transpose #(ly:make-pitch u1 0) $p
               {
                 \clef bass \key c $tonart \CreateIntervals \shiftMus $leiter #2 #'( 3 3 2)
               }
             >>
           }
           \new PianoStaff
           \with {
             instrumentName = \markup \umkehrung "2."
           }
           {
             <<
               \new Staff \new Voice \transpose #(ly:make-pitch o2 0) $p
               {
                 \key c $tonart \CreateIntervals \shiftMus $leiter #4 #'( 3 2 3)
               }
               \context Voice \Stufen
               \new ChordNames \transpose c $p \CreateIntervals $leiter #4
               \new Staff \transpose #(ly:make-pitch u2 0) $p
               {
                 \clef bass
                 \key c $tonart \CreateIntervals \shiftMus $leiter #4 #'( 3 2 3)
               }
             >>
           }
           \new PianoStaff
           \with {
             instrumentName = \markup \umkehrung "3."
           }
           <<
             \new Staff \new Voice \transpose #(ly:make-pitch o3 0) $p
             {
               \key c $tonart \CreateIntervals \shiftMus $leiter #6 #'( 2 3 3)
             }
             \context Voice \Stufen
             \new ChordNames \transpose c $p \CreateIntervals $leiter #4
             \new Staff \transpose #(ly:make-pitch u3 0) $p
             {
               \clef bass \key c $tonart \CreateIntervals \shiftMus $leiter #6 #'( 2 3 3)
             }
           >>
         >>
       }
     #}
     ))

vierk =
#(define-scheme-function (p leiter tonart)
   (ly:pitch? ly:music? list?)
   (scorify-music (vier p leiter tonart)))

funf =
#(define-music-function (p leiter tonart)
   (ly:pitch? ly:music? list?)
   (let* ((was (ly:pitch-notename p))
          (o1 (cond
               ((equal? was 2) 0) ; e
               ((equal? was 3) 0) ; f
               ((equal? was 4) 0) ; g
               (else -1)))
          (o2 (cond
               ((equal? was 2) 0) ; e
               ((equal? was 3) 0) ; f
               ((equal? was 4) 0) ; g
               (else -1)))
          (o3 (cond
               ((equal? was 2) 0) ; e
               ((equal? was 3) 0) ; f
               ((equal? was 4) 1) ; g
               (else 0)))
          ;(o4 -1)
          (o4 (cond
               ((equal? was 2) -1)  ; e
               ((equal? was 3) -1)  ; f
               ((equal? was 4) 0) ; g
               (else -1)))
          (u1 (if (equal? was 4) 2 1))
          (u2 (cond
               ((equal? was 2) 1) ; e
               ((equal? was 3) 2) ; f
               ((equal? was 4) 2) ; g
               (else 1)))
          (u3 (cond
               ((equal? was 2) 2) ; e
               ((equal? was 3) 2) ; f
               ((equal? was 4) 2) ; g
               (else 1)))
          (u4 (cond
               ((equal? was 2) 1)  ; e
               ((equal? was 3) 1)  ; f
               ((equal? was 4) 1) ; g
               (else 1)))
          )
     #{
       {
         <<
           <<
             \new PianoStaff
             \with {
               instrumentName = \markup \tonlei
             }
             \new Voice \transpose c $p
             {
               \key c $tonart $leiter
             }
             \new Dynamics \DurStufen
           >>
           \new PianoStaff
           \with {
             instrumentName = \markup \grund
           }
           {
             <<
               \new Staff \new Voice \transpose c $p
               {
                 \key c $tonart \CreateIntervals $leiter #5
               }
               \context Voice \Stufen
               \new ChordNames \transpose c $p \CreateIntervals $leiter #5
               \new Staff \transpose c'' $p
               {
                 \clef bass \key c $tonart \CreateIntervals $leiter #5
               }
             >>
           }
           \new PianoStaff
           \with {
             instrumentName = \markup \umkehrung "1."
           }
           {
             <<
               \new Staff \new Voice \transpose #(ly:make-pitch o1 0) $p
               {
                 \key c $tonart \CreateIntervals \shiftMus $leiter #2 #'( 3 3 3 2)
               }
               \context Voice \Stufen
               \new ChordNames \transpose c $p \CreateIntervals $leiter #5
               \new Staff \transpose #(ly:make-pitch u1 0) $p
               {
                 \clef bass
                 \key c $tonart \CreateIntervals \shiftMus $leiter #2 #'( 3 3 3 2)
               }
             >>
           }
           \new PianoStaff
           \with {
             instrumentName = \markup \umkehrung "2."
           }
           {
             <<
               \new Staff \new Voice \transpose #(ly:make-pitch o2 0) $p
               {
                 \key c $tonart \CreateIntervals \shiftMus $leiter #4 #'( 3 3 2 3)
               }
               \context Voice \Stufen
               \new ChordNames \transpose c $p \CreateIntervals $leiter #5
               \new Staff {
                 \clef bass \transpose #(ly:make-pitch u2 0) $p
                 {
                   \key c $tonart \CreateIntervals \shiftMus $leiter #4 #'( 3 3 2 3)
                 }
               }
             >>
           }
           \new PianoStaff
           \with {
             instrumentName = \markup \umkehrung "3."
           }
           <<
             \new Staff \new Voice \transpose #(ly:make-pitch o3 0) $p
             {
               \key c $tonart \CreateIntervals \shiftMus $leiter #6 #'( 3 2 3 3)
             }
             \context Voice \Stufen
             \new ChordNames \transpose c $p \CreateIntervals $leiter #5
             \new Staff {
               \clef bass \transpose #(ly:make-pitch u3 0) $p
               {
                 \key c $tonart \CreateIntervals \shiftMus $leiter #6 #'( 3 2 3 3)
               }
             }
           >>
           \new PianoStaff
           \with {
             instrumentName = \markup \umkehrung "4."
           }
           <<
             \new Staff \new Voice \transpose #(ly:make-pitch o4 0) $p
             {
               \key c $tonart \CreateIntervals \shiftMus $leiter #1 #'( 2 3 3 4)
             }
             \context Voice \Stufen
             \new ChordNames \transpose c $p \CreateIntervals $leiter #5
             \new Staff {
               \clef bass \transpose #(ly:make-pitch u4 0) $p
               {
                 \key c $tonart \CreateIntervals \shiftMus $leiter #1 #'( 2 3 3 3)
               }
             }
           >>
         >>
       }
     #}
     ))

funfk =
#(define-scheme-function (p leiter tonart)
   (ly:pitch? ly:music? list?)
   (scorify-music (funf p leiter tonart)))