Autor Thema: Unverständliche Fehlermeldung  (Gelesen 2722 mal)

Radler

  • Member
Unverständliche Fehlermeldung
« am: Donnerstag, 20. Juni 2013, 11:45 »
Hallo liebe Lilypondianer,

eine .ly-Datei, die im letzten Oktober (2012) noch anstandslos übersetzt wurde, bricht jetzt mit einem Fehler in den Tiefen vom Lilypond-Code ab. (siehe unten).

Durch ein- und auskommentieren von Musik fand ich heraus, dass es offenbar an einem es4. in einer \alternative-Anweisung liegt. Die ist aber völlig unverdächtig.

Ich benutze 2.17.20, zurückgehen auf 2.17.6. hat nicht geholfen.

Kann jemand helfen? Braucht Ihr die .ly-Datei?

Grüße und Dank
von Radler



c:/Programme/LilyPond/usr/share/lilypond/current/scm/bar-line.scm:926:28: In procedure ly:grob-array-length in expression (ly:grob-array-length bar-array):
c:/Programme/LilyPond/usr/share/lilypond/current/scm/bar-line.scm:926:28: Wrong type argument in position 1 (expecting Grob_array): ()

harm6

  • Member
Re: Unverständliche Fehlermeldung
« Antwort #1 am: Donnerstag, 20. Juni 2013, 11:52 »
Hallo,

die Fehlermeldung in
Zitat
ly:grob-array-length in expression (ly:grob-array-length bar-array)
läßt mich eher vermuten, daß es an den BarLines liegt.

2.17. hat ein neues barline-interface. Manche BarLine muß jetzt auch anders geschrieben werden.
->NR
Die Schreibweisen werden aber von convert-ly korrekt konvertiert.
Hast Du das versucht?

Wenn das nicht hilft, solltest Du ein Beispiel posten.

Gruß,
  Harm

Radler

  • Member
Re: Unverständliche Fehlermeldung
« Antwort #2 am: Freitag, 21. Juni 2013, 09:43 »
Danke für die schnelle Antwort, Harm!

Leider trifft Deine Vermutung nicht zu. Die einzige bar-Anweisung in der .ly-Datei sieht so aus:
    \bar ":|."
Die entspricht NR S.92 ( vorletzter Taktstrich, zwischen g1 und a1).
Und wenn ich die bar-Anweisung herausnehme, kommt der gleiche Fehler.

Hat noch jemand Ideen?

Vielen Dank und viele Grüße
von Radler

eluze

  • Member
Re: Unverständliche Fehlermeldung
« Antwort #3 am: Freitag, 21. Juni 2013, 10:37 »
lass mich raten - oder deinen code lesen ;D

harm6

  • Member
Re: Unverständliche Fehlermeldung
« Antwort #4 am: Freitag, 21. Juni 2013, 11:01 »
Zitat von: Radler
Leider trifft Deine Vermutung nicht zu.
Das kann ich nicht glauben  (falls Du die Fehlermeldungen vollständig gepostet hast).

Laut Fehlermeldung funktioniert
(ly:grob-array-length bar-array)nicht, da
bar-array eine leere Liste sei.

Dieser Code entstammt der Definition für 'ly:volta-bracket::calc-shorten-pair' aus bar-line.scm, welcher die X-Länge von VoltaBrackets regelt, abhängig von den Taktstrichen.
'bar-array' is definiert als (ly:grob-object grob 'bars)

Wenn bar-array jetzt eine leere Liste ist, heißt das, daß keine BarLines zur Berechnung gefunden werden.

Es gibt jetzt nur zwei Möglichkeiten.
  • Der Code aus bar-line.scm ist fehlerhaft.
    Das interessiert mich sehr, da ich eine zeitlang an der Erstellung des entsprechenden patches mitgearbeitet habe und dieser spezielle Fehler noch nie aufgetaucht ist.
    Da brauch ich aber Deinen Code.
  • Dein Code ist fehlerhaft.
    Um hier weiterzukommen brauch ich aber Deinen Code.

Also, wie Eluze schon schrieb:
Zitat von: Eluze
lass mich raten - oder deinen code lesen
vorzugsweise als Minimal-Beispiel.

Gruß,
  Harm

Btw, bar-line.scm regelt sehr viel mehr als explizite Setzungen via \bar "xy"
« Letzte Änderung: Freitag, 21. Juni 2013, 11:05 von harm6 »

Radler

  • Member
Re: Unverständliche Fehlermeldung
« Antwort #5 am: Montag, 24. Juni 2013, 17:26 »
Danke für die Angebote, meinen Code zu lesen, die ich gerne annehme!
Allerdings ist es ein gutes Stück Arbeit, weil die Datei eine lange Genese hat und erst gründlich gereinigt werden muss. Das könnte sich also etwas hinziehen. Ich melde mich dann wieder.
Danke nochmal!
Viele Grüße
von Radler

harm6

  • Member
Re: Unverständliche Fehlermeldung
« Antwort #6 am: Montag, 24. Juni 2013, 23:24 »
Zitat von: Radler
Danke für die Angebote, meinen Code zu lesen, die ich gerne annehme!

Ähm, Du erinnerst Dich doch an:
Zitat von: harm6
vorzugsweise als Minimal-Beispiel.
?!!
;)

Gruß,
  Harm


Radler

  • Member
Re: Unverständliche Fehlermeldung
« Antwort #7 am: Dienstag, 25. Juni 2013, 07:48 »
Ja - das eben macht die viele Arbeit und kostet die viele Zeit.
Aber ich will mich nicht beklagen.
Es soll nur nicht der Eindruck entstehen, die Lösung des Problems wäre mir nicht wichtig...
Grüße von
Radler

Radler

  • Member
Re: Unverständliche Fehlermeldung
« Antwort #8 am: Mittwoch, 26. Juni 2013, 17:28 »
So, jetzt habe ich es gefunden: Es lag an consists/remove Volta_engraver. Wenn ich beides auskommentiere, funktioniert es. Damit ist die Sache für mich erledigt, weil ich mit dem Ergebnis leben kann.
Wenn noch jemand nachforschen will: Ich hänge unten noch einen Code-Auschnitt an (nicht compilierbar) mit den auskommentierten (!) Volta_engraver-Anweisungen.
Vielen Dank an alle, die sich meines Problems angenommen haben!
Viele Grüße
von Radler


MstaffCantusFirmus =
{
   \new Staff
   <<
      \llKeyTime
      \once \override Score.RehearsalMark.X-offset = #-1
      \once \override Score.MetronomeMark.extra-offset = #'(+0 . -0)
      \set Staff.midiInstrument = #"violin"
      \new Voice = "voiceCantusFirmus" \with
      {
         \consists "Ambitus_engraver"
         \consists "Mark_engraver"
%         \consists "Volta_engraver"
      }
      {
         \autoBeamOff
         %\voiceOne
         \McantusFirmus
         \bar ":|."
      }
      \new Lyrics \lyricsto "voiceCantusFirmus"
      {
         \TintroSopran
         \TersteStropheCantusFirmus
         \TdritteStropheCantusFirmus
      }
      \new Lyrics \lyricsto "voiceCantusFirmus"
      {
         \TintroCantusFirmusSkip
         \TzweiteStropheCantusFirmus
      }
      \new Lyrics \lyricsto "voiceCantusFirmus"
      {
         \TintroCantusFirmusSkip
         \TvierteStropheCantusFirmus
         \TfuenfteStropheCantusFirmus
      }
   >>
}
llChordNames =
{
   \new ChordNames
   {
      \set majorSevenSymbol = \markup { "7#" }
            \set chordNameLowercaseMinor = ##t
      \set chordChanges = ##t
      \semiGermanChords      %      \germanChords
      \Call
   }
}

llScore =
{
   \transpose es c
   {
      \new ChoirStaff
      <<
         \llChordNames
         \MstaffCantusFirmus
      >>
   }
}
\score
{
   {
      \llScore
   }
   \layout
   {
      indent = 0.0\mm
      \context
      {
         \RemoveEmptyStaffContext
         \override VerticalAxisGroup.remove-first = ##t
      }
      \context
      {
         \Score
%         \remove "Volta_engraver"
         \remove "Mark_engraver"
      }
      \context
      {
         \ChordNames
         \override ChordName.font-series = #'bold
         \override ChordName.font-size = #2.0
      }
   } % \layout
} % \score
\score
{
   \unfoldRepeats
   {
      \llScore
   }
   \midi{}
} % \score


harm6

  • Member
Re: Unverständliche Fehlermeldung
« Antwort #9 am: Mittwoch, 26. Juni 2013, 20:19 »
Hallo Radler,

Du hattest den "Volta_engraver" in einem Voice-context eingefügt.
Generell kann ich mir nicht vorstellen, daß das sinnvoll sein kann.
In der Doku (ich habe NR, Snippets und LSR durchsucht) ist der "Volta_engraver" wenn überhaupt, dann immer in einen Staff-context verschoben.

Hast Du das versucht?


Gruß,
  Harm

Radler

  • Member
Re: Unverständliche Fehlermeldung
« Antwort #10 am: Donnerstag, 27. Juni 2013, 10:11 »
Großartig Harm, das funktioniert - vielen Dank!

Ehrlich gesagt habe ich die ganze Sache mit den Engrävern nicht verstanden. Das remove/consists-Konstrukt habe ich von einem anderen hilfreichen Lilypondianer übernommen - und bisher funktionierte es ja auch einigermaßen.

Aber offenbar ist die neue Lilypond-Version kritischer.
Ich werde meine .ly-Dateien umstellen. (Das sind immerhin über 600 Stück!)

Viele Grüße und nochmals vielen Dank
von Radler