velocity control

Steven's icon

Hi all, I have been trying to set up some velocity control so that different strength key press will effect the values of the synth modules. I've listened to the effects of it on some other synths and know how i want it to sound but can't figure out how to do it max. I have tried connecting the velocity of note in to things like the filter cut off, pan, volume etc... but the velocity causes the paramter to change very abruptly and causes some nasty pops and clicks.
So I just wondered if anyone had any tips on how to make it sound like it should.
Thanks for any advice,
Steve

Steven's icon
Roman Thilenius's icon

[line~.help]

Steven Miller's icon
Steven's icon

Thanks for your advice. It got rid of the sudden drop to 0 and is working ok. I'm not quite sure what you meant by having velocity infuence the envelpoe of a parameter but I would like to have a way to control how much the parameters will be affected by velocity. Is there an easy way to achieve this? This simple patch shows how i've currently got it
Thanks you,
Steve

Max Patch
Copy patch and select New From Clipboard in Max.

Exit Only's icon

use scale.

Here is an example building on your patch-

Max Patch
Copy patch and select New From Clipboard in Max.

Steven's icon

Thanks for sending that patch. I'm not sure how to get it working. I'm using a poly~ with filtercoeff~ and biquad~ inside. I don't understand why you scale the MIDI velocity between 0. and 1. I don't see what effect this can have on the filter frequency that goes from 20-20000 Hz. Can you explain it a bit more and how I can use it with my patch? This patch shows how i've got the filter set up inside the poly~
Thanks,
Steve

Max Patch
Copy patch and select New From Clipboard in Max.

Exit Only's icon

It may not have been the best example..

The scaled (0. to 1.) value is multiplied with the set cutoff on the right. The result of this multiplication is then added to the original.

So, for example, say you set the cutoff frequency to 1000Hz. If the velocity comes in at 127, it is scaled to 1.

1. * 1000 = 1000. This is added to the original cutoff frequency (1000Hz) making the new cutoff frequency 2000Hz.

If the input velocity was 64 it would be scaled to .5.

.5 * 1000 = 500. This would then be added to the original frequency of 1000, making the new cutoff at 1500Hz.

The reason I did this, rather than simple scale 0-127 to 20.-20000
is because I have found that I get better results by using velocity to deviate from some set response, rather than to fully set the entire frequency response. For example, if you have the velocity scaled to the full frequency spectrum, and you hit a note that had a low velocity (like 10 or something) then nearly all the frequencies sounded by that note would be filtered out.

However in this example, one could hit a note with a velocity of 1 and the lowest the cutoff frequency would go is 1000Hz.

Also, by doing it this way, you can limit how much the velocity bumps up the frequency reponse by adjusting the high output of scale.

However, this is just an example. I'm sure there are a ton of ways to do it.

Here is another example using your poly patch. This one works with an rslider (which should ideally lie outside of the poly, but I placed it inside to make things simple). I didn't really analyze your patch enough to know what all the signal inputs to filtercoeff~ are doing, so I just isolated the parts that are relevant. If you like this example, I'm sure you can work it into your patch.

Max Patch
Copy patch and select New From Clipboard in Max.

Exit Only's icon

Not to beat a dead horse or anything, but I woke up this morning and realized that the first patch could be done more simply. I'm sure other people realized this but I'm glad no one beat me to it. Here is a revised version of the first patch, which should illustrate the example more clearly.

Max Patch
Copy patch and select New From Clipboard in Max.

now I need to get on with my life ;]