• Willkommen im Forum „Archiviertes Lilypond Forum (2017)“.
 

Dies ist das Archiv des alten Forums (bis März 2017). Das aktuelle Forum ist unter lilypondforum.de zu finden.
This is the archive of the old forum (until March 2017). You can find the current forum at lilypondforum.de.

Hauptmenü

Fehler beim Code von David Kastrup?

Begonnen von stefanhuglfing, Freitag, 28. März 2014, 03:08

Vorheriges Thema - Nächstes Thema

stefanhuglfing

Ich habe aus dem Video http://chemnitzer.linux-tage.de/2012/vortraege/900 von David Kastrup einen Code abgetippt:


\version "2.18.0"

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 ChoirStaff <<
  \new Staff << \high \\ \middle >>
  \new Staff { \clef bass  \low } >>


damit erhalte ich allerdings Fehlermeldungen.

Wenn ich bei den Funktionsaufrufen \ph noch Taktstriche einfüge:


\version "2.18.0"

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 ChoirStaff <<
  \new Staff << \high \\ \middle >>
  \new Staff { \clef bass  \low } >>




bekomme ich immerhin ein Notenbild, aber ab Takt 2 sind die Stimmen vertauscht.

Habe ich einen blöden Tippfehler gemacht? Ich finde keinen.
Ich wäre sehr Dankber für Hilfe.


harm6

Hallo,

das Problem liegt wahrscheinlich beim partcombiner. An dem wurde kürzlich rumgeschraubt.
Mit 2.16.2 compiliert der originale Code tadellos.

Ich weiß allerdings nicht, ob ich Dir da helfen kann. Ich kenne mich da nicht besonders aus und hab' kaum Zeit mich damit vertraut zu machen. :(
Mal schaun ...

Gruß,
  Harm

stefanhuglfing

Mach dir mal keine Mühe, ich hab bei mir jetzt Version 2.16.2-1 installiert und es geht.

Aber das wäre was für eine der nächsten Versionen, diesen code wieder zum laufen zu bringen.
Kann man sich das irgendwo wünschen?

infranator

Ich habe das Problem auch schon bemerkt.
Komischerweise funktioniert es, wenn man nach den Funktionsaufrufen einen Barcheck einfügt.


\version "2.18.0"

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 ChoirStaff <<
  \new Staff << \high \\ \middle >>
  \new Staff { \clef bass  \low } >>


harm6