Deutsches Lilypond Forum (Archiv)

Allgemein => Fragen zu Funktionen => Thema gestartet von: stefanhuglfing am Freitag, 28. März 2014, 03:08

Titel: Fehler beim Code von David Kastrup?
Beitrag von: stefanhuglfing am Freitag, 28. März 2014, 03:08
Ich habe aus dem Video http://chemnitzer.linux-tage.de/2012/vortraege/900 (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.

Titel: Re: Fehler beim Code von David Kastrup?
Beitrag von: harm6 am Freitag, 28. März 2014, 12:03
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
Titel: Re: Fehler beim Code von David Kastrup?
Beitrag von: stefanhuglfing am Freitag, 28. März 2014, 16:17
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?
Titel: Re: Fehler beim Code von David Kastrup?
Beitrag von: infranator am Freitag, 28. März 2014, 20:42
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 } >>
 
Titel: Re: Fehler beim Code von David Kastrup?
Beitrag von: harm6 am Samstag, 29. März 2014, 13:39
Hallo,

ich habs mal auf der bug-list gepostet
http://lists.gnu.org/archive/html/bug-lilypond/2014-03/msg00096.html (http://lists.gnu.org/archive/html/bug-lilypond/2014-03/msg00096.html)

Gruß,
  Harm