On 12.05.24 15:22, Kristian Amlie wrote:
have indeed run into the exact problem that Hermann describes above,
with an instrument sounding good only in one or two octaves
...

Hi Kristian,

thanks for chiming in; the problems with the possible workarounds you
describe and the avenues to address those match closely my own experience
and considerations. This is a limitation I have on my mind since quite some
time, yet it does not seem to be easy just to "fix" and requires some planning.

Some time ago, I did a complete rework of the legato / note-ON code to fix
some deeply rooted problems; at that time it became clear to me that in
theory the "crossfade" feature might as well work based on volume
without incurring any serious performance degradation; the only problem
with this change would be that the data value must be transported to
that code handling the cross fade, and from there on further to the
code calculating the actual volume per part.

Some days ago, Will and I had a discussion off-list, which touched the
possibility to have further parameters per note, which would have been
a rather internal thing with the current MIDI standard, yet could turn
into a much more far reaching possibility with new upcoming standards.

Obviously, none of us can clearly spell out such a feature right now;
at the moment this discussion might rather help to find out what would
be possible and what could be achieved with reasonable effort, without
endangering the overall structure of the code base. For me this was
also the reason to bring up this related problem with per-note
adjustments. If we consider to transport one or two further data
values with a note event (even just internally), several further
new things seem possible.

For the problem of "balancing the presence" of an instrument,
it would probably be sufficient to have a global adjustment for
the volume; implementing this would be trivial, the challenge
seems rather to be the UI and how to control such a parameter.
If, on the other hand, we'd go to the trouble of implementing
a new pop-up window with an curve adjustment, similar to EQ
or envelope or the like (which is quite some work to be sure),
then we'd end up with a LUT (look-up-table) to be used in
the actual note-on code. If we actually go that far, then of
course the question is, why stop there? Then we could also
have a reworked crossfade feature, or consider adding an
adjustment to some filter parameters, based on a per-note
multitouch or whatever.

Needless to mention the limitations we all know...
- the code base as such has its specific problems,
  simple changes can easily go out of hand and turn into
  a major refactoring
- our work capacity is limited, any changes must be added
  incrementally and it is essential not to break existing sound.

-- Hermann


_______________________________________________
Yoshimi-devel mailing list
Yoshimi-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/yoshimi-devel

Reply via email to