Currently I am trying to find a way to cause velocity to affect only the amount of a modulation target in a fractional way (dividing by multiplication of 0-1), rather than taking a modulation target’s baseline value and adding to it.
in other words, i want velocity to change the amount of something as a multiplier with a value of 0 to +1, and the way that value would be applied is described by this algorithm in pseudocode:
definitions:
velo.rotary.knob is the value of velocity sent to a modulation target
this pseudocode assumes the maximum positive value of this is +1 and the minimum is -1velo.rotary.knob == 1 (
if midi.event.velocity==0 then target.parameter*=0 # low event velo, target nullified
if midi.event.velocity==64 then target.parameter*=0.5 # target value reduced by half
if midi.event.velocity==127 then target.parameter*=1 # full event velo, no change to target
)
velo.rotary.knob == 0 (
if midi.event.velocity==0 then target.parameter*=1 # no change
if midi.event.velocity==64 then target.parameter*=1
if midi.event.velocity==127 then target.parameter*=1
)
velo.rotary.knob == -1 (
if midi.event.velocity==0 then target.parameter*=1 # low event velo, no change to target
if midi.event.velocity==64 then target.parameter*=0.5 # target halved
if midi.event.velocity==127 then target.modulation.target.value *= 0 # max event velo, null the target
)
It seems that in Vital, Velocity as a modulator source is currently adding to the target parameter’s value (multiplying by a value greater than 1), not multiplying the target value by a value of 0 to 1, which would be division. This tells me that I am wanting something in my user skills, but also the way velo works by default requires an extra acquired skill other than the simple stupid drag and drop and receive bacon method.
can this be achieved via bipolar mode? are there any tricks tips or best practices to aim for this kind of behavior?