Kontakt Velocity Control Question

Hello,

I have a conundrum and I’m not sure if it’s a question for Gig Performer or Kontakt. I have a MIDI sequence playing a kontakt instrument. The MIDI Sequence (of course) is a fixed sequence of notes / rhythms and velocities. I’d like to have a knob that somehow modifies (lowers/raises) the velocity coming from the sequence before it hits the kontakt sequence.

Anyone know of a way to do this?

Personally I would use GP.

Connect a knob widget to the velocity parameter and connect that to a physical controller.

Other people can help perfect the scaling.

Which velocity paameter? Thanks for the reply

Is the MIDI sequence generated within Kontakt itself, or another source that is then wired into Kontakt?

Hmm, I guessed this was in the parameter list that you can connect to a widget, but I may be missing something.

Or maybe connect to velocity graph in the midi in block?

I’d have to look, but I don’t have time now.

(Sorry if I confused things.)

Try this

It is a MIDI file in the GP MIDI file player being sent to Kontakt.

Easy to do, enable MIDI Merge in the MIDI In plugin and place it between MIDI file player and Kontakt

So that would be assigning a widget to a MIDI In Block, but the MIDI sequence is coming from the GP player, so I’m not sure how mapping to the MIDI In block would work… I would be great if the MIDI player had this option, but I don’t believe it does.

Easy to do



Now with the 2 widgets you can easily adjust the velocity curve.

Alternatively you can use this scriptlet like this in between the MIDI file player and Kontakt. Map a knob widget to the Adjust Velocity By parameter. The parameter has a velocity adjustment range of +/- 63.

AdjustVelocity.gpfav (1.2 KB)

Clever Solution, but keep keep in mind that when your incoming note on velocity is for example 40 then putting the scriptlet parameter fully left results in sending a Note Off message.
And with the method of using the MIDI In plugin you can scale to a fixed velocity.

True, the script could/should be adjusted to limit the minimum value to velocity sent to 1.
It is probably better served for minor adjustments—perhaps a range of +/-20. I just used +/-63 as a demonstration.

See, zfw, now you got some help from people with skills!

Thanks everyone, exploring options now. I like the idea of having one knob using the script, however when I put it in my midi wire chain it forces the incoming MIDI sequence to channel 1. How do I allow for channel 9?

I opened up the script code and didn’t see any info regarding channel

The quick remedy is to use a Channel Constrainer block.

The constrainer for sure works.

In the scriptlet you could use this code, so the NoteMessage is sent with the MIDI Channel it is coming into the scriptlet.

SendNow(WithVelocity(m, GetVelocity(m)+Vel))

Don’t quit understand how to adjust the code, but thanks for all the feedaback! I’m in good shape.

Doubleclick on the Scriptlet

Click on the pencil icon, this opens the Script Editor Window

Change the code and press the green “Compile” button.
Close the Script Editor Window.

Be happy :wink:

it worked!