Would anyone be interested in scripting this use case?
Notes within defined ranges would be mapped to specific drum set note with these DEFAULTS: C3-C5 notes to a drum set ride cymbal note. (General MIDI Drum map NOTE = 51) C0-C2 notes mapped to a gentle kick drum note. (General MIDI Drum map NOTE = 35) C#2-B2 notes mapped to a brush snare drum note (No General MIDI standard but a "Maracas" is close NOTE = 70)
Ranges should not be configured as non-overlapping but proximity to the edges could effect velocity attenuation. Allowing overlapping ranges will likely mean adding more RANGES will be easy to figure out for improvements.
Improvements to follow might add parameters for randomness to create a more sparse drum-set track. If it works out there are a lot of improvements that others could add to the basic script.
This would make a drummer that follows the jazz piano player without needing to think about sync and clock headaches. Most drum apps now follow the clock and the performer has to match the drums. This makes the drums match the performer with respect to timing.
A lot of General MIDI synths have a Preset that simply adds a Ride Cymbal layer to an acoustic bass so playing a walking bass-line helps simulate a jazz combo with a piano keyboard split.
Here's a 3 line script that does your default mapping. Drum velocity set by note velocity and drum notes on channel 10. This one adds the drum notes rather than remapping. If you want a pure remap, remove the +C flags.
I'd like to allow the user to set the upper-lower note ranges using GUI controls and set the specific notes that are generated. It would also ne a nice touch to allow the user to set the MIDI output channel. So 10 NOTE/Channel variables tied to GUI controls with labels.
I'll leave it to the interested coder to offer implementation comments or provide sample code for these 10 Vairiable GUI enhancements around the basic MIDI conversions I'd like to have: