Autor Thema: Fehler beim Code von David Kastrup?  (Gelesen 2056 mal)

stefanhuglfing

  • Member
Fehler beim Code von David Kastrup?
« am: Freitag, 28. März 2014, 03:08 »
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

  • Member
Re: Fehler beim Code von David Kastrup?
« Antwort #1 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

stefanhuglfing

  • Member
Re: Fehler beim Code von David Kastrup?
« Antwort #2 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?

infranator

  • Member
Re: Fehler beim Code von David Kastrup?
« Antwort #3 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 } >>
 

harm6

  • Member
Re: Fehler beim Code von David Kastrup?
« Antwort #4 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

Gruß,
  Harm