How to control MIDI velocity with a CC value?

I am playing a little bit with AVLDrumkit, the GUI shows an interesting option to change the velocity using the mouse wheel, however I would like to use the value of a CC message as the velocity rather than the one coming from my midi keyboard. That way I can try a few interesting things like record an initial MIDI performance then feed it to a second MIDI track and control the velocity with a knob or mod wheel to make the performance a bit more interesting or dynamic.

Is there a native way in Ardour or maybe a plugin I haven’t found yet?

Thanks in advance

Edit: I am using Ardour 5.12 in Ubuntu 19.04

The stock answer is that it depends on the plugin itself. If the overall velocity scaling is available as a control port to the host, then in Ardour it can be automated and the automation can be controlled with the generic MIDI module. This is not quite the same as controlling it from the MIDI stream itself but doable. Where it could also be done from the MIDI stream itself would depend on the plugin for sure. Fluidsynth (what I think AVLDrums is based on) is a great program but basic in some things.
The next question is: do you really want to vary velocity, or do you want to control output level. I am pretty sure Fluidsynth does have a CC assigned to output level. But I can certainly see a use for varying velocity too.
One more possibility for varying velocity is to prefilter the MIDI stream. A MIDI filter ahead of AVLDrums could take a defined CC and use that as a scaling value for velocity. I do not know if such a plugin exists, but scripting such a plugin in LUA should be possible. As the MIDI stream is recorded ahead of the plugins, the CC to change velocity could be edited in the normal method.

Since there are multiple velocity layers in the plugin (different sounds depending on velocity), you don’t want to control the master-volume via CC, but change the note’s velocity.

You could move the plugin post-fader in Ardour, and use the fader to modify the MIDI note velocity. With generic-MIDI ctrl surface you can also remote-control the fader. That’d still be for all concurrent notes, though.

It’s probably easier to just edit velcicty after recording

Thanks a Iot, acutally I found an LV2 plugin by faktx called “MIDI Gain”, it allowed me to change the midi velocity with a CC1 mapped to a knob in my midi keyboard. With this I can try what I described in my original post with no need to use a mouse wheel.

1 Like