Comment #34 on issue 3581 by [email protected]: Patch: Add support for
setting MIDI pan position, and reverb and chorus levels
http://code.google.com/p/lilypond/issues/detail?id=3581
"Well, we can't really get along without any MIDI initializations when a
piece contains actual dynamics. I'd actually be fine with keeping the
hands off the global volume knob and do normal dynamics just by using key
velocity (I think one can't avoid that one). And we can't get away without
some defaults like for the tempo I think."
That's probably true.
"So it's sort of a balancing act. Now I don't want to imply that the old
code was sane. But it was doing something, and now we are doing something
else."
I agree: it's good that you noticed this possible change in the behavior,
and therefore the change that removed the instrumentName setting should be
reverted for safety. If this still requires an action from my part, please
tell me what to do next. (The handling of the new MIDI properties does not
depend on removing instrumentName, so putting it back will not interfere
with the added behavior.)
"And that's a good opportunity to reconsider what we _want_ to be doing in
the first place."
In this specific case of MIDI instrument volume equalization, it looks like
that, if there's (assuming the default midiChannelMapping) a staff whose
midiInstrument, instrumentName, midiMaximumVolume, midiMinimumVolume, and
instrumentEqualizer haven't been set in the input, the dynamic performer
will try to equalize the note velocities using the range defined
for "bright acoustic" – after removing the instrumentName setting from
ly/performer-init.ly, the performer would try "piano" as you said. The
default instrument equalizer (defined in scm/midi.scm) doesn't define a
velocity range for either of these two names, so removing the
instrumentName property setting from performer-init.ly indeed had no real
effect when using the current default instrument equalizer, but the
situation could easily change if the default equalizer is modified, or if
using a custom instrument equalizer.
In my opinion, if a staff doesn't have a midiInstrument (and no
midiMinimumVolume/midiMaximumVolume) set, no note velocity equalization
should be applied on that staff (keeping with the principle of not
enforcing any defaults if possible). Alternatively, if this cannot be
avoided, the default instrument equalizer could be modified to provide a
special "default" key and make the dynamic performer use that instead of
any actual instrument names as the fallback, and add a mention about
the "default" key in the documentation on equalizing MIDI instruments.
Anyway, it's probably better to move the discussion about the current
behavior of the dynamic performer (and the need for defining instrumentName
in ly/performer-init.ly) elsewhere since it is no longer related to this
issue.
--
You received this message because this project is configured to send all
issue notifications to this address.
You may adjust your notification preferences at:
https://code.google.com/hosting/settings