Topic: Generic velocity curves for slow keyboards

Hi all,

if you you need a curve for a slow keyboard and neither the "slow" nor the "moderately slow" is fitting, you can use one of these generic curves.
0.35 is for a very slow keyboard, 0.5 is very similar to the "slow" preset, 0.7 is very similar to "moderately slow" preset. 1.0 would be linear so I stopped at 0.95.
So these curves all have the same function but are finer grained.

0.35
Velocity = [0, 4, 7, 11, 15, 23, 28, 43, 64, 91, 127; 0, 38, 46, 54, 60, 70, 75, 87, 100, 113, 127]

0.4
Velocity = [0, 2, 6, 8, 13, 22, 32, 44, 63, 91, 127; 0, 24, 37, 42, 51, 63, 73, 83, 96, 111, 127]

0.45
Velocity = [0, 4, 6, 12, 16, 19, 32, 43, 62, 87, 127; 0, 27, 32, 44, 50, 54, 68, 78, 92, 107, 127]

0.5
Velocity = [0, 2, 8, 12, 16, 23, 32, 42, 61, 90, 127; 0, 16, 32, 39, 45, 54, 64, 73, 88, 107, 127]

0.55
Velocity = [0, 4, 7, 11, 17, 20, 28, 43, 60, 90, 127; 0, 19, 26, 33, 42, 46, 55, 70, 84, 105, 127]

0.6
Velocity = [0, 4, 8, 9, 17, 20, 28, 45, 60, 91, 127; 0, 16, 24, 26, 38, 42, 51, 68, 81, 104, 127]

0.65
Velocity = [0, 3, 7, 8, 16, 19, 32, 41, 60, 88, 127; 0, 11, 19, 21, 33, 37, 52, 61, 78, 100, 127]

0.7
Velocity = [0, 2, 6, 11, 17, 21, 28, 45, 61, 89, 127; 0, 7, 15, 23, 31, 36, 44, 61, 76, 99, 127]

0.75
Velocity = [0, 3, 6, 8, 13, 21, 30, 45, 64, 90, 127; 0, 8, 13, 16, 23, 33, 43, 58, 76, 98, 127]

0.8
Velocity = [0, 4, 6, 11, 15, 20, 29, 45, 60, 87, 127; 0, 8, 11, 18, 23, 29, 39, 55, 70, 94, 127]

0.85
Velocity = [0, 3, 8, 12, 17, 19, 28, 43, 63, 88, 127; 0, 5, 12, 17, 23, 25, 35, 51, 70, 93, 127]

0.9
Velocity = [0, 2, 5, 11, 17, 19, 32, 44, 60, 91, 127; 0, 3, 7, 14, 21, 23, 37, 49, 65, 94, 127]

0.95
Velocity = [0, 4, 6, 8, 17, 22, 28, 41, 64, 87, 127; 0, 5, 7, 9, 19, 24, 30, 43, 66, 89, 127]

Maybe you can post here which of these curves you find useful for which keyboard.

Re: Generic velocity curves for slow keyboards

Wow this is a great resource, thank you for your effort! May I ask how you've generate the curves, is it a mathematical formula? Do you also have any suggestion how to adopt a certain curve to a keyboard on which it's not possible to reach all 128 velocity steps. For example, on my keyboard (Yamaha N1) the lowest level that's seems possible to play is 6 and the highest is in the 115-120 range. I think the 0.85 & 0.9 curves feels very natural on my piano but I want to take advantage of the full dynamic range of Pianoteq, and at the same time adopt the seemingly logical development of the touch in the different curves. Thank you again for sharing.

Last edited by johanibraaten (20-10-2020 22:24)

Re: Generic velocity curves for slow keyboards

johanibraaten wrote:

May I ask how you've generate the curves, is it a mathematical formula?

Yes, it is a very simple exponential function like y=x^a where "a" is the exponent.
I just adopted it to fit to the range of 0...127 like y=127*(x/127)^a

johanibraaten wrote:

Do you also have any suggestion how to adopt a certain curve to a keyboard on which it's not possible to reach all 128 velocity steps. For example, on my keyboard (Yamaha N1) the lowest level that's seems possible to play is 6 and the highest is in the 115-120 range.

If your keyboard doesn't reach all velocity values, it is most likely to either compress the dynamics or to chop the top and low ends off.
If it is compressing, you can can compress the curve to fit the range.
let's say a= the exponent (e.g. 0.85)
b= the lower limit (e.g. 6)
c= the upper limit (e.g. 120)
Then your formula is:
y(x)= 0 for x <= b
y(x)=127 for x >= c
y(x)=127*((x-b)/(c-b))^a for b < x < c

Re: Generic velocity curves for slow keyboards

Cogito wrote:
johanibraaten wrote:

May I ask how you've generate the curves, is it a mathematical formula?

Yes, it is a very simple exponential function like y=x^a where "a" is the exponent.
I just adopted it to fit to the range of 0...127 like y=127*(x/127)^a

johanibraaten wrote:

Do you also have any suggestion how to adopt a certain curve to a keyboard on which it's not possible to reach all 128 velocity steps. For example, on my keyboard (Yamaha N1) the lowest level that's seems possible to play is 6 and the highest is in the 115-120 range.

If your keyboard doesn't reach all velocity values, it is most likely to either compress the dynamics or to chop the top and low ends off.
If it is compressing, you can can compress the curve to fit the range.
let's say a= the exponent (e.g. 0.85)
b= the lower limit (e.g. 6)
c= the upper limit (e.g. 120)
Then your formula is:
y(x)= 0 for x <= b
y(x)=127 for x >= c
y(x)=127*((x-b)/(c-b))^a for b < x < c

Thanks for your reply, very interesting and valuable indeed. Unfortunately I've not that knowable in mathematics so I don't think I will be able to figure it out by myself, but I have friends that are so I will ask them for help:)

Re: Generic velocity curves for slow keyboards

May I also ask, is it the same formula for the curves that applies on fast keyboards?