"Modul nnn gefunden "-- Was heißt das?

Begonnen von KSchmir, Dienstag, 19. Juli 2022, 21:56

« vorheriges - nächstes »

KSchmir

Hallo,
meine zweite Anfrage hier. Lilypond hat mein gegenwärtiges Projekt von Anfang an furchtbar langsam kompiliert und beendet die Kompilation schon länger nur noch mit Return-Code 1.

Unter den Fehlermeldungen sind naturgemäß diverse unvollendete Crescendos und Decrescendos plus immer auch so etwas:

ZitatC:/Users/sofia/Desktop/Notationen/Two Sketches Stimmen/Charles T Griffes Two Sketches II.ly:477:25: Fehler: falscher Typ für Argument 1; music erwartet, #<module 48ba8d0> gefunden
  d8 (c) d (a) c4 c~ 2~
                        \cresc 4 r4

Die Zeile hat sich bisher durch meine Reparaturversuche immer wieder verschoben, aber immer wird "Musik erwartet" und ein Modul gefunden; auf die Nummer habe ich bisher nicht geachtet. Im Gegensatz zu z. B. monierten Zahlenangaben -- statt "music" -- bei

Zitat% \override StaffSymbol #'line-count = #1

(ist im Moment auskommentiert) fand ich es nun sinnvoll, die gemeldete Zeile statt  zu verändern isoliert zu kompilieren: Geht problemlos.

  d8 (c) d (a) c4 c~ 2~ \cresc 4 r4
  d8 \mf

Was kann dieses Modul sein? Was bedeutet die Nummer?

Danke schonmal für alle Hinweise

Klaus


harm6

ZitatLilypond hat mein gegenwärtiges Projekt von Anfang an furchtbar langsam kompiliert
Tja ...
Liegt es an Dir oder an LilyPond?
Um hier etwas sagen zu können brauchen wir mindestens die verwendete Version und müssen wissen was Du gemacht hast. Also Deinen Code.

Zitatund beendet die Kompilation schon länger nur noch mit Return-Code 1.
Sobald Du einen ernsten error bekommst, schaff ihn aus der Welt und schreib nicht weiter. Es entstehen nur Folgeprobleme, die alles vernebeln.
Falls du selbst nicht weiter weißt, frag hier.
Aber nochmals, schreib nicht einfach weiter ...

ZitatUnter den Fehlermeldungen sind naturgemäß diverse unvollendete Crescendos und Decrescendos

Wieso naturgemäß? Da ist nichts naturgemäßes dran. Crescendos und Decrescendos gehören ordentlich beendet. Auch diese Warnungen führen dazu, daß man den Wald vor lauter Bäumen nicht sieht.
Falls Du Code hier posten wirst, dann löse all diese Warnungen auf.
Ansonsten machst Du potenziellen Helfern nur das Leben schwer.

ZitatFehler: falscher Typ für Argument 1; music erwartet, #<module 48ba8d0> gefunden
Eine solche Fehlermeldung habe ich bisher nur ein einziges mal gesehen.
Dort wurde versucht einen \header {} als Argument einer Funktion zu verarbeiten, allerdings mit dem falschen Prädikat. Es wurde für den \header nach ly:music? gefragt, es hätte aber module? verwendet werden müssen.
Falls Du eine solche Funktion verwendest, verändere sie entsprechend.
Ansonsten brauchen wir Deinen Code.

ZitatWas kann dieses Modul sein? Was bedeutet die Nummer?
Wie schon gesagt, möglicherweise ein \header. Die Nummer ist für unsere Belange völlig bedeutungslos.

Noch eine paar Ratschläge.
(1)
Zitatd8 (c)
sollte als
Zitatd8( c)
geschrieben werden. Die Zeichen ( und ) starten und beenden einen Slur und natürlich startet der Slur auf dem d.
Tatsächlich versteht LilyPond auf Grund der postfix-Syntax beides. Start/stop des Slurs sind post-events, somit ist eine Schreibweise, die dem Rechnung trägt Deinem eigenen Verständnis förderlich.

Zitat\override StaffSymbol #'line-count
Dies ist veraltete Syntax, momentan noch unterstützt, es ist aber fraglich wie lange noch.
Schreib besser:
    \override StaffSymbol.line-count


HTH,
  Harm






KSchmir

Hallo harm6,

vielen Dank erstmal. Mein Projekt ist wieder in einem kompilierenden Zustand.

Es geht immer noch langsam für die wenigen vollen Takte. Ich schiebe das erstmal darauf, dass ich eine Timeline mit nicht wenigen Taktwechseln bis zum Ende erstellt habe und hoffe, dass sich die Kompilierungsdauer nicht groß ändert, wenn diese Takte gefüllt werden.

Die Meldungen über unfertige Crescendi haben sich immer zuverlässig mit der nächsten Dynamikangabe aufgelöst, und mit noch einem Takt mehr gab es dafür neue. Das war für mich inzwischen Normalzustand.

ZitatZitat
ZitatFehler: falscher Typ für Argument 1; music erwartet, #<module 48ba8d0> gefunden

Eine solche Fehlermeldung habe ich bisher nur ein einziges mal gesehen.
Dort wurde versucht einen \header {} als Argument einer Funktion zu verarbeiten, allerdings mit dem falschen Prädikat. Es wurde für den \header nach ly:music? gefragt, es hätte aber module? verwendet werden müssen.
Falls Du eine solche Funktion verwendest, verändere sie entsprechend.

Das übersteigt mein Fassungsvermögen. Ich weiß nichts über solche Funktionen; der einzige Header steht am Anfang, und sein Auskommentieren ändert nichts.

Aber:

Ich habe deine Tips am Ende berücksichtigt und die Zeile mit dem Line.count wieder "einkommentiert". Prompt bezog sich auch die Fehlermeldung wieder auf diese Zeile.

Dann habe ich wie unten zwei Befehle auskommentiert, die ich gerade nicht brauche (noch habe ich nur die Partitur vor mir, und Wiederholungen schreibe ich inzwischen direkt mit \repeat unfold; das lässt sich ja später leicht zu \repeat percent ändern. Die müssen -- kombiniert -- das Problem gewesen sein, denn nur wenn beide auskommentiert sind, funktioniert die Datei. 

Das \RemoveEmptyStaves wird offenbar ignoriert, wurde aber noch nie moniert, genausowenig wie die zwei auskommentierten Zeilen.


Zitat\version "2.22.2"

\score {
\relative c'
{ c8 c d d e g f4 }
      \layout {  #(layout-set-staff-size 14)
\context {
  Staff = \RemoveEmptyStaves
}
 \context  {  \Voice
    \consists "Melody_engraver" }
% \unfoldRepeats
% \compressMMRests
}

}






harm6

Dein kurzes Codebeispiel enthält mehrere Probleme, die durchaus zu befremdlichen Fehlermeldungen führen:
(1)
\context {
  Staff = \RemoveEmptyStaves
}
muß
\context {
  \Staff
  \RemoveEmptyStaves
}
heißen. Erstaunlich, daß Du bei dermaßen verquerer Syntax nicht noch mehr Probleme hast.

(2)
\unfoldRepeats ist ein Musikfunktion, die Musik als Eingabe erwartet und Musik zurückgibt.
Im \layout deshalb deplaziert. Setze es vor die Musik, die Du entfaltet haben möchtest.

(3)
\compressMMRests ist ebenfalls eine Musikfunktion. Es gilt dasselbe wie für (2).
Allerdings würde ich \compressEmptyMeasures verwenden. Das ist keine Musikfunktion, sondern ein shortcut für
\set Score.skipBars = ##t
Es wird also ein context-property gesetzt, sonst nichts, und kann somit im \layout verwendet werden.
Kurze Erklärung:
\set Score.skipBars = ##t
komprimiert durch lange Ganztaktpausen oder lange Noten (z.B. eine ganze Note in einem 2/4-Takt) verursachte leere Takte.
Sowohl \compressMMRests als auch \compressEmptyMeasures setzen dieses context-property, aber in \compressMMRests nur für Ganztaktpausen. Um Ganztaktpausen zu erkennen muß \compressMMRests aber über die Musik iterieren, deshalb ist es eine Funktion.

(3)
#(layout-set-staff-size 14)
Ich verwende es nie, viel zu buggy. Ich würde magnifyStaff nehmen. Auch nicht problemlos, aber es gibt wenigstens dokumentierte Möglichkeiten diese Probleme zu lösen.

(4)
Indentation.
Gehe da einheitlich und systematisch vor.
Beim ersten Blick auf Dein Beispiel hatte ich zunächst den Eindruck, daß viel mehr daneben war. Dabei waren Code-Teile nur an unerwrarteten Stellen.

Also:
\score {
  \unfoldRepeats
  \relative c' { \repeat volta 2 { c8 c d d e g f4 } }
  \layout {
    #(layout-set-staff-size 14)
    \context {
      \Staff
      \RemoveEmptyStaves
    }
    \context  {
      \Voice
      \consists "Melody_engraver"
    }
    \compressEmptyMeasures
  }
}

layout-set-staff-size habe ich allerdings drin gelassen.

Gruß,
  Harm


KSchmir

Tausendmal Danke!

Ich habe mir das alles aus verschiedenen Quellen (dem Learning-pdf und einem Mix von deutschen und englischen Suchworten aus der Lilypond-Dokumentation [F9 in Frescobaldi]) zusammengestoppelt. Das Gleichheitszeichen zwischen zwei \-Ausdrücken und bestimmt tausend andere Sachen habe ich gesetzt, weil es in einer Fehlermeldung so "erwartet" wurde. Hat nichts verschlimmert.

Nach den vorgeschlagenen Änderungen kompiliert das Ding in 12 Sekunden.

Und tatsächlich habe ich (immer noch!) noch andere Probleme. Demnächst ein neuer Thread.

Gruß
Klaus