value = MX + Y
(value = data2)
even better would be to allow a curve to be specified, ie. is there a linear or exp relationship)
(result is clipped to 0…127)
use cases
midi in -> cc remap (4,4) -> scaleoffset (0.5x +0) : used to 'attenuate a cc 4
midi in -> velocity -> scaleoffset(exp) : remap velocity values
it could perhaps be generalised more, to allow either scaleoffset on data1 or data 2.
this would mean it could be a more generalised for of transpose. (as this is 1x+N) (when N can be negative)
(that’s said, perhaps this is more a bread n butter, primitive, so transpose is kept as its got a musical meaning)