How can I use MID learn with plugins?
The new ‘auto-show of touched parameters’ feature in 6.6 is great, and that, combined with a question from a student asking about MIDI parameter control has me excited but scratching my head.
The manual says “Ctrl Middle -click on whatever on-screen fader, plugin parameter control, button etc. you want to control” Do I need to enable something? I can link controller data to channel faders and panners as described but not plugin parameters (I tried ACE EQ, ACE Delay, and a few others from other places)
I found a way of doing it - right click on the plugin in the mixer strip, go to Controls and select the parameters I want to control, then middle-click the small faders that appear in the mixer strip. But that doesn’t sound like the ‘on-screen’ described above. It also makes the mixer strip very messy. I can’t see this method in the manual (though I may have missed something), but hopefully there’s a simpler way to do it.
(I’m on Ardour 6.5 and also just tried on 6.6, OS X 10.15.7)
You cannot use MIDI learn with the GUI provided by the plugin. This is true no matter what the plugin format or platform is. You need an “Ardour-owned” (or more generally speaking, “host-owned”) control of some sort. You can do that in one of 3 ways:
right click on the processor element in the mixer strip, and choose “Edit with Generic GUI”
right click on the processor element in the mixer strip, and from “Controls”, make the desired parameter visible inline in the mixer strip
in the editor, click on the “A” (automation) button for the track, find the desired parameter. This will make the automation lane for that parameter visible, and it comes with a fader you can use for MIDI learn.
You can’t just “click the GUI” because the plugin owns the GUI, and cannot (and should not) be a part of the MIDI learn process. You should perhaps know that in VST3, MIDI isn’t even a part of the plugin specification anymore
there are some plugins like Loomer’s String which does ‘Start Midi Learn’(which is not a vst3 plugin)… I have 1 or 2 more plugins like this on Linux which offers this. I can map a modulation-wheel to GUI controls with the ‘Start Midi Learn’ with Loomer String, so this contradicts what Paul has said but this isn’t a vst3 plugin. I can still see the automations and controls for it as mentioned…
^ Perhaps you can also add to the manual to avoid anything with ‘Start Midi Learn’ if the plugin UI provides this, as I was able to confirm that a mapping handled by the plugin would conflict with the host’s handling of the same mapping. I was able to use the modulation-wheel on my midi device for the L1AMPAttack control, and then see what happens when I map the same thing using Ardour’s ctrl-midclick mapping from the ‘Edit with generic controls’ from the plugin button in the Mixer strip.
^ I applied ctrl+midmouse click over the value area for L1AmpAttack and I was able to have Ardour handle the midi-learn…
I had to remove the plugin and then re-add it – then I did not bother to use ‘Start Midi Learn’ from the plugin UI in order to get the midi-learn only handled by Ardour.
That is plugin-based MIDI learn. It has nothing to do with host-based MIDI learn. Functionally it might serve as a reasonable replacement for it, but it is not the same.
Host-based MIDI learn: after learning, the host receives MIDI data, and in response to that, it alters the values of the plugin parameters. The MIDI data stream used by the host may have nothing to do with the MIDI data stream delivered to the plugin (e.g. MIDI keyboard to the plugin, MIDI fader bank to the host control system).
Plugin-based MIDI learn: after learning, the plugin receives MIDI data, and in response, alters its own parameters. The plugin must get the MIDI data stream on its input, which may or may not be convenient.
And yes, you can’t do this with VST3 (at least, not without violating the intent of the VST3 specification.
It is not possible for the host to “disable” plugin-based MIDI learn. The plugin has its own GUI and it receives MIDI data (except in VST3). It can do whatever it wants with this.