Hi there. I have a more conceptual question this time.
I'm trying to build a basic keyboard instrument with a sensitivity slider that does more than act as a LUT for incoming MIDI.
Imagine a soft/hard knob on an instrument with six dynamic layers. All the way soft would heavily weight incoming MIDI towards the lowest dynamic levels, and velocity 127 would trigger only dynamic level 3, with the highest two dynamic levels omitted entirely.
Same vice versa. With the knob all the way at "hard", incoming MIDI is weighted towards higher dynamics, and a note with velocity of 1 would trigger dynamic level 3, the quietest two dynamic levels being omitted entirely.
With the knob in the middle, you'd get a normal linear response.
If this were Kontakt, I would put each dynamic layer in a separate group and do the "which group to play from" decision making and velocity scaling in scripting. Each group would have a velocity>volume modulator with an upwards slanting curve such that each dynamic layer, when played with a velocity of 1, approximately matches the dynamic layer below it.
The idea is to be able to select one or multiple dynamic layers and map them across the velocity range without running into quantization like you'd get with a simple MIDI input LUT.
In HISE I'm guessing I could use separate samplers or rr groups to select which dynamic layer to play. Or maybe the velocity mapping secretly uses floats and there's a way to play with fractional velocities?
I'm asking now before exploring options thoroughly in case there's a very clever solution right off the bat. It's difficult to think outside the box when you've been stuck in Kontakt for years.