Improve and fix interface for the Melody_engraver
The previous workflow of the Melody_engraver
was to decide wether to
act on stem directions depending on the value of their neutral-direction
property. It would only add the Stem
to a MelodyItem
when
neutral-direction
was not a valid direction. This could be used to
signal a particular passage where the direction of staff-centered stems
was not to be adapted to the melody.
This had two downsides. For one thing, the interface was not very
user-friendly, because \override Stem.neutral-direction = #'()
was strictly required for the Melody_engraver
to be of any usefulness.
With this change, a mere \consists Melody_engraver
does the right thing.
For another, the Melody_engraver
does not act on every stem.
An example is the (invisible, but significant) stem on every
rest. This means there is no proper way to set the
neutral-direction for these. It can also cause some crashes
at present (see #6093 (closed)).
A new context property called suspendMelodyDecisions
is introduced. That is used instead of the validity of
Stem.neutral-direction
to determine wether to act on
a stem.
This lets us stop instructing to do
\override Stem.neutral-direction = #'()