This suggestion was inspired by an issue I’ve had with several MIDI keyboards which have inconsistent velocity sensors, meaning that if the same force were used to press each key on the keyboard, the velocity sensors would either overvalue or undervalue the velocity. One or more notes would be softer for example (not as loud, have a lower velocity value transmitted), while others would be too “hot” (sound too loud because the sensors have transmitted a higher velocity value, despite the same (or similar) force being used to press the keys.
For this issue, and perhaps others, it might be nice to have a MIDI modifier the editor of which lists every possible MIDI note value (from 0-127) separately, so that a person could select one or more of the notes and apply a velocity-scaling factor independently for each note. Any note could have a velocity-scaling factor entered by the user for it, but only those notes that have been selected would be processed to adjust the velocity by the specified scaling factor before being sent to the next segment (modifier or output) of the pipe. This modifier could also potentially be used for a range of possible functions (other than merely velocity-scaling). All notes that are not selected and processed would simply be transmitted/passed/echoed unaltered to the next segment of the pipe.
For example, this modifier’s editor would list every note, from 0 to 127, and to the right of the number would be a checkbox that the user could could use to select that particular note, then a dropdown list of functions that could be applied to that note (the function I’m currently thinking of is “velocity scaling”) and then an editable text-entry box that would contain the value of the variable that would be used to process the selected note using the function that is selected for that note.
I hope I have explained this idea reasonably well. If not, please let me know so I can edit this post or respond to any reply. Thanks.