Autor Thema: Programmierfehler: Impossible or ambiguous (de)crescendo in MIDI  (Gelesen 2323 mal)

viertel

  • Gast
Programmierfehler: Impossible or ambiguous (de)crescendo in MIDI
« am: Sonntag, 2. August 2015, 14:32 »
Hallo

Ich versuche immer, das Protkoll eine ly-Umwandlung sauber zu halten. D.h. jeglichem Fehler sowieso, aber auch jeder Warnung nachgehen und sie zu eliminieren.
Das gelingt mir aber bei der Meldung, die im Titel steht nicht. Ich hatte sie in einer größeren ly-Datei mehrfach, aber auch mit diesem Minibeispiel erscheint sie:
\version "2.18.2"

\header { title = "Programmierfehler" }

Noten = {
   \new Staff {
      \clef treble
      \time 3/4
      \key g \major
      \tempo 4=120
      \relative c' {
         fis4(\mf g a)
         <d g>2.\>      % der Übeltäter
         <a c>2.\mf
         }
      \bar "|."
      }
   }

Dummy = ##t

\score { \Noten \midi { } }

\header { instrument = "Programmierfehler: Impossible or ambiguous (de)crescendo in MIDI." }
\score { \Noten \layout { } }

Komplette Meldung:
Starte lilypond-windows.exe 2.18.2 [F3.ly]...
»D:/Daten/LilyPond/Oklahoma/F3.ly« wird verarbeitet
Analysieren...
Interpretation der Musik...
Programmierfehler: Impossible or ambiguous (de)crescendo in MIDI.
Fortsetzung, die Daumen drücken
Interpretation der Musik...
Vorverarbeitung der grafischen Elemente...
MIDI-Ausgabe nach »F3.mid«...
Ideale Seitenanzahl wird gefunden...
Musik wird auf eine Seite angepasst...
Systeme erstellen...
Layout nach »F3.ps« ausgeben...
Konvertierung nach »./F3.pdf«...
Kompilation erfolgreich beendet
Erfolgreich abgeschlossen in 5.8".

Die Ausgabe wird wird indes korrekt erzeugt (Daumen drücken hilft also anscheinend).

Muß ich mir da Sorgen machen oder kann ich die Meldung getrost ignorieren?

Gruß vom 1/4

harm6

  • Gast
Re: Programmierfehler: Impossible or ambiguous (de)crescendo in MIDI
« Antwort #1 am: Sonntag, 2. August 2015, 16:57 »
Hallo,

Du schreibst ein mf dann decrescendo zu mf.
LilyPond versteht eine bestimmte Lautstärke, dann ein leiser werden hin zur selben Lautstärke.
Ich weiß zwar was gemeint ist aber rein von der Programmierlogik ist es natürlich Blödsinn ;)

Um das log clean zu haben könntest Du folgendes versuchen:

Noten = {
   \new Staff {
      \clef treble
      \time 3/4
      \key g \major
      \tempo 4=120
      \relative c' {
         fis4(\mf g a)
         <d g>2.*11/12\> s2.*1/12\!
         %% oder
         %<< <d g>2. { s2\> s8. s16\! } >>
         <a c>2.\mf
         }
      \bar "|."
      }
   }

HTH,
  Harm

P.S. Das ist übrigens kein Windowsproblem, sondern ein generelles.

viertel

  • Gast
Re: Programmierfehler: Impossible or ambiguous (de)crescendo in MIDI
« Antwort #2 am: Sonntag, 2. August 2015, 17:12 »
Hallo Harm

Danke für die Antwort.
Musikalisch macht es durchaus Sinn, einen Ton abklingen zu lassen und dann wieder mit einer bestimmten vorgegebenen Laustärke weiterzuspielen. Bei f statt mf tritt der gleiche Fehler auf, bei p ist Ruhe im Karton.
Warum ist Lilypond da irritiert? Weil keine sinnvolle Endlautstärke für das Decrescendo angegeben ist?

Deine Vorschläge lassen den Fehler verschwinden. Sind aber unschöne trickreiche Workarounds.

Mir ist klar, daß das kein Windows, sondern ein genereller Fehler ist.
Aber wo einordnen? Ein Forum für (solche) Fehler sehe ich nicht.

1/4

harm6

  • Gast
Re: Programmierfehler: Impossible or ambiguous (de)crescendo in MIDI
« Antwort #3 am: Sonntag, 2. August 2015, 17:52 »
Zitat
Musikalisch macht es durchaus Sinn, einen Ton abklingen zu lassen und dann wieder mit einer bestimmten vorgegebenen Laustärke weiterzuspielen.
Ja, musikalisch schon. Man muß es aber auch einem Computerprogram "erklären".
Und abklingen bis wohin?

Zitat
Bei f statt mf tritt der gleiche Fehler auf, bei p ist Ruhe im Karton.
??

Noten = {
   \new Staff {
      \clef treble
      \time 3/4
      \key g \major
      \tempo 4=120
      \relative c' {
         fis4(\f g a)
         <d g>2.\>
         <a c>2.\mf
         }
      \bar "|."
      }
   }

Funktioniert bei mir. Nicht aber wenn ich \f durch \p ersetze.

Zitat
Warum ist Lilypond da irritiert? Weil keine sinnvolle Endlautstärke für das Decrescendo angegeben ist?
Nun, Deine Endlautstärke ist dieselbe wie die Anfangslautstärke, mezzoforte. Wie soll da ein Computerprogramm ein "leiserwerden" gestalten?

Zitat
Deine Vorschläge lassen den Fehler verschwinden. Sind aber unschöne trickreiche Workarounds.
Denke ich nicht. Du mußt angeben wie das decrescendo ausgeführt werden soll und es muß beendet sein bevor das neue mezzoforte zum tragen kommt.
Das letzte ist nicht nur programmiertechnisch sondern natürlich auch musikalisch selbstverständlich ;)

Zitat
Mir ist klar, daß das kein Windows, sondern ein genereller Fehler ist.
Aber wo einordnen? Ein Forum für (solche) Fehler sehe ich nicht.
Nein, es ist kein Fehler ;)
Aber ich hätte kein Problem den Thread in "Fragen zu Funktionen" zu sehen.

EDIT:
Der einzige Fehler, den ich hier sehe ist, daß die Warnung als "Programmierfehler" ausgegeben wird.
Das ganze als tatsächliche "Warnung" zu betitlen wäre eher angemessen, imho.
« Letzte Änderung: Sonntag, 2. August 2015, 18:15 von harm6 »