MIDI Learn on selected track

I’d like to setup my generic MIDI pot controller to control the parameters of my channel strip plugin, and in a way that it only controls the plugin of the selected track.

Is it possible to do that using MIDI Learn only?

Not possible. MIDI Learn connects a specific MIDI message with a specific parameter. You need to create MIDI Binding Map (documented below) to control a “generic” parameter like “the 2nd parameter of the 1st plugin on the selected track”.

https://manual.ardour.org/using-control-surfaces/generic-midi/midi-binding-maps/

1 Like

Thanks Paul.

Is there any way to make the encoders “jump”, and not “catch” the parameter?

There’s a smoothing parameter that can affect this behavior, but ultimately without touch sensitivity, it’s hard to really do this right.

Are they set up as encoders in your midi map or CC? I guess to ask further, do your encoders put out offsets (and have a light ring) or do they act as pots? If they act as pots, then when the selected channel changes these pots would have to have a motor to set themselves to the new value… not something any rotary I know of does (besides on controllers over $100K). A light ring on the other hand is possible with encoders that send offsets rather than hard CC values. The Ardour midimap can be set up to accept message that mean increase or decrease this control by some number of ticks. see The Ardour Manual

They are normal fixed potentiometers.

By “jump the parameter” I don’t mean that the parameters mechanicly move the encoder, but rather that the parameter value is set immediately on an incoming absolute value from the controller. The way it is working by default (at least in my setup), is that turning the encoder won’t move the parameter until the incoming value is aligned with the current value of the parameter. The pot needs to “catch” the value of the parameter before it will work, rather than just immediately “jump” the parameter to the incoming value.

As I mentioned, if you play with the value of “smoothing”, at one end of the range (I can’t recall which), you should get the behavior you want.

Aha, the smoothing parameter is in the Show Protocol Settings of the Control Surfaces menu. I set it to 127, and every move of the encoder is registered. Not particularly intuitive, but nice that it’s there :slight_smile:

Hi,

I don’t know nothing about lua scripting yet, but I have one question :

Can someone tell me if it is theoretically possible to write a script with lua, that would use MIDI Learn to instantly re-map all controllers on every change of the selected track ?

You can’t use Lua to do “MIDI Learn”. MIDI Learn is driven by interacting with incoming MIDI.

A MIDI binding map will already automatically change what things are controlled when you change the selected track.

Ok I see ! Thank you for your answer.
I do use MIDI binding maps. For controlling plugins parameters, they are very efficient but not so flexible. I’m wondering about ways to achieve what I’m looking for in Ardour, if there’s any…

…So I’ll turn my question differently !
Can we use Lua to memorize all that have been mapped using MIDI Learn in a project, then store it (“Learned map 1”) and reset the “MIDI-learned” data, then map some other stuff with MIDI Learn and store it (“Learned map 2”), etc… and recall one of the learned map on demand ?
…Could we imagine, for instance, a behavior like "when track 2 is selected, recall ‘Learn map 2’ " ?

Is Lua an appropriate way to achieve something like this ?

There’s no obvious way to do this right now.