I ran into this issue again recently. Something that is seen a lot in 19th and 20th century music is a crescendo or decrescendo without going to a specific dynamic. The performer is given the freedom to decide how much to change the dynamics. This causes an error message: "
programming error: Impossible or ambiguous (de)crescendo in MIDI."
%%% BEGIN
\version "2.19.10"
\score {
\relative c' {
c1 \p | c4 \< d e f | g \> f e d | c1 \p
}
\layout {}
\midi {}
}
%%% END
It was already agreed (I believe) that the error message should give some line number in the code.
There is a workaround, but it's ugly:
%%% BEGIN
\version "2.19.10"
\score {
\relative c' {
c1 \p | c4 \< d e \once \omit DynamicText f \f | g \> f e d | c1 \p
}
\layout {}
\midi {}
}
%%% END
The problem is that the harpin does not quite go as far as you want it to. This seems like an issue to me, but I can't find it in the Issues site (I may have missed it.) Is it agreed that this is an issue (at least Ugly)? Is it in the Issues Tracker? Should I post this to bugs?
What should LilyPond do in these cases? I would think it should pick the "next" dynamic up (e.g. "mp") and use that. Either that or some way to indicate both the ending dynamic and the start of a (de)crescendo.