Autor Thema: Jetzt mit neuem code: Phrasen mit gleichen Tönen aber unterschiedlichen Rhytmen  (Gelesen 1343 mal)

stefanhuglfing

  • Member
In einem Stück, an dem ich gerade schreibe kommen immer wieder ähnliche Prasen vor.
die Melodie ist im Prinzip immer wieder gleich, nur mit verschiedenen Rhytmen und auch verschiedener Anzahl von Tönen.
Ein kurzer Ausschnitt:

\version "2.18.0"

#(set-default-paper-size "a5")

h = b
j = a
k = g
l = c

t = c
z = b
u = a
i = g
o = fis
w = g
 
SopranNoten = 
 \relative c''
  {
   \h \breve \j4 \k \l \l \l2
   \l \breve \t4 \z \u \i \o \w2 \break
   \h \breve \j4 \k \l2
   \l4 \t \z \u \i \o \w2   
  } 

h = g
j = fis
k = e
l = e

t = fis
z = d
u = e
i = e
o = c
w = b
 
MezzoNoten = 
 \relative c''
  {
   \h \breve \j4 \k \l \l \l2
   \l \breve \t4 \z \u \i \o \w2 \break
   \h' \breve \j4 \k \l2
   \l4 \t \z \u \i \o \w2
  }

h = d
j = c
k = b
l = a

t = a
z = g
u = c
i = b
o = a
w = g
 
AltNoten = 
 \relative c'
  {
   \h \breve \j4 \k \l \l \l2
   \l \breve \t4 \z \u \i \o \w2 \break
   \h' \breve \j4 \k \l2
   \l4 \t \z \u \i \o \w2
  }
 

\score
 {
  <<
   
   \new ChoirStaff   
    <<     
     \new Staff 
      << 
       \new Voice = "first"
        {         
         \voiceOne
         \SopranNoten
        }     
 
       \new Voice = "second"
        {
         \voiceTwo 
         \MezzoNoten
        }       
      >>
   
     \new Staff
      <<     
       \new Voice
        {         
         \AltNoten         
        } 
      >>
    >> 
  >>

  \layout { \context { \Staff  \remove "Bar_engraver" line-width = #11115 } }
 }   

Um Schreibarbeit zu sparen habe ich Variablen eingeführt.
Das kommt mir aber unelegant vor. Lieber wäre mir eine Lösung ähnlich dem, was David Kastrup in dem Video http://chemnitzer.linux-tage.de/2012/vortraege/900 vorführt.

Ich habe den entsprechenden Teil seines codes abgetippt:

ph = #(define-music-function (parser location p1 p2 p3 p4 p5)
        (ly:pitch? ly:pitch? ly:pitch? ly:pitch? ly:pitch?)
        #{
          \repeat unfold 2 {$p1 2 } |
          \repeat unfold 2 {r16 $p2 8. ~ $p2 4 } |
          \repeat unfold 2 {r8 $p3 16 $p4 $p5 $p3 $p4 $p5 } |
        #})
\parallelMusic #'(low middle high) {
  \ph c' e' g' c'' e''
  \ph c' d' a' d'' f'' }
\new PianoStaff <<
  \new Staff << \high \\ \middle >>
  \new Staff {clef bass \low }
>>

Der Unterschied ist folgender:
Bei David Kastrup bleibt der Rhytmus und die Anzahl der Noten immer gleich und die Höhe der Töne ist jedesmal anders
Bei mir bleibt die Tonhöhe immer gleich, aber der Rhytmus und auch die Anzahl der Töne ändert sich.

David Kastrup verwendet
Ph = #(define-music-function-...
        (ly:pitch?...

Ich könnte "pitch" durch "duration" ersetzen, aber das geht auch nicht, weil es in den  Phrasen auch unterschiedliche Anzahl Noten gibt.

Weiß jemand ein schönes Verfahren?

« Letzte Änderung: Donnerstag, 27. März 2014, 15:35 von stefanhuglfing »