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.


_______________________________________________
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user

Reply via email to