lilypond-user
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Impossible or ambiguous (de)crescendo in MIDI.


From: Graham King
Subject: Re: Impossible or ambiguous (de)crescendo in MIDI.
Date: Thu, 17 Mar 2016 22:51:50 +0000

On Wed, 2016-03-02 at 14:37 +0000, Graham King wrote:
I'm trying to eradicate numerous "Impossible or ambiguous (de)crescendo in MIDI" errors from a large score...
Well, there's some, qualified, success to report: I've eliminated the various, sometimes well-hidden, causes of these messages.  But doing so has taken half the total time spent on the score.  It would be wonderful if the error message could be accompanied by any indication at all of where in the score, or input file, to look for the cause.

Meanwhile, here's a note to my future self with some search strategies.  I hope others might find it useful:

The following examples might encompass any number of intermediate notes and rests.  I'm using lilypond 2.19.35, so other versions might need to use different syntax.

  1. Compile early; compile often; fix the warnings as they arise; don't let them mount up.  This will reduce the search space.
  2. { c\mf\> c\! }  MIDI needs an end dynamic.  Replace with { c\mf\> c-\omit\p }  Now go and eradicate \! from your score.  It is anathema to MIDI.
  3. { c\p c\< c\> c }  The classic pair of hairpins.  Replace with { c\p c\< c-\omit\mf\> c-\omit\p }
  4. { c\mf R1*20 c\< c\mf }  Obvious when you see it written this briefly.  Replace with { c\mf R1*20 c-\omit\mp\< c\mf }
  5. { c_\markup { \dynamic p \italic { dolce } }  Looks like a dynamic, walks like a dynamic, but doesn't quack like one.  Replace with { c-\omit\p_\markup { \dynamic p \italic { dolce } } Likewise for "meno f" and many other cases.
  6. { c1\sfz }  No this is not a dynamic, either.  Try:{ \tag #'pdf { c1\sfz } \tag #'midi { c4->\f ~ c2.\mf } } [note 1]
  7. If you still cannot find the source of the problem, adopt a bisection strategy: Comment out \bookpart and any corresponding \include stanzas from the \book.  Then comment out parts from the \score { } block until the number of warnings changes.  Then pursue bisection further, by commenting out blocks of notes from the offending part.  Block comments, %{ ... %}, are your friend.  Eventually you will home in on the source of the problem.
  8. Version control (git, or similar) is your friend.  In a year's time, it will show you the answer to "How did I fix that, last time?"
  9. When you have finally fixed it, swallow your pride and write up the solution somewhere you are likely to search for information next time.  Somewhere like lilypond-user ...

Notes:
[1] Thanks to Cynthia Karl for pointing this one out.  And thanks to Simon Albrecht for pointing out that, if you are already using tags, you'll probably need \tagGroup pdf.midi and other tag groups for those you already are using.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]