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