Generic MIDI Binding - control addresses and plugin ID

Hello everyone,

I have a few questions about this page of Ardour’s manual , as I’m not sure if it’s exhaustive or up to date :

  • Is the list of “control addresses” here exhaustive ? For example, is there a way to bind a send bypass (which could be something like “/route/send/mute” or “/route/send/bypass” ?)
    And if yes, is there a way to figure out what are all the possible control addresses ?

  • Is there another way to identify a plugin than by its number ?
    I’m working on a binding map for a control surface that controls (at least) compression and EQ plugins on each track. For now the compressor plugin has to be on the first position and the EQ on the second for the MIDI map to work, but I sometimes want to switch the two. So I wonder if there is a way to identify a plugin independently of its position in the plugin list of a track ?

  • Is there an easy way to have the ID numbers of all the parameters of any plugin ?

  • And while I’m here, another one : I recently updated from Ardour 5.12 to 6.7 (AMAZING job !!), and the binding uri “/bus/gain master” does not work anymore to control master gain ?

  • [edit] and one more : is there any way to select a track by its number ID ?

Thank you !

Hi, I had the same questions a few months back. Although I’m not sure if this is correct, my conclusions were that there is no other way to identify a plugin and its parameters other than the ordered indexing given by the order of the plugins on the track.

To get the ID for a certain parameter I found that you can see the orden of the parameters when you open the “Generic Controls” of the plugin.

And finally yeah you can select tracks by its ID or even its name. See the “Control Adress” section on the manual.

Maybe someday I’ll dedicate time to implement something similar to Bitwig’s devices + the Flexi extension. There you can select which plugin to control and for each plugin you can asing certain parameter in a given layout known as “device”. The device controls can be binded to a controller. So that you can control any plugin from any track with the same 8 knobs for example.

Hopefully what I wrote makes sense haha…

Hello, and thank you for the answer !
(I hope that what I write make sense too, I’m french)

Yeah, identifying a plugin with its name doesn’t seem to work… I’ll admit that it is not possible at this time.

Well, I found that the parameter’s order in the generic GUI does not match the real order ! Plus, for some plugs (like ACE EQ, which has no GUI but the generic), there is no obvious readable order.
As I found no easy way to do that, I made a specific map file for my MIDI controller, to “test” each parameter from 1 to 48, then I write down the results… For some plugs that is quite laborious !

That is for identifying a track as an address for a command (“uri”). What I want to do is the action “select track X” in the editor, the same way you can select the next or previous track with the action “Editor/select-next-route”… Not sure if it is possible, I found no clue for that in the keybinding file.

Another thing : I’m working on a quite big thing (for me), with the Behringer X-touch mini in addition with Pure data, which permits to virtually increase the number of notes and controllers (I’ll share this in this forum when I’m done). I ended up with something like 123 controllers and 125 notes to map, and when I came to MIDI mapping… I found that Ardour won’t read the map file (it doesn’t appear on the list) when its size is over a certain value !!
I don’t know what is this value exactly, but I have a map file that is about 20kB, that Ardour won’t read. More than the half of that file were commented lines ; when I removed them the file was about 10kB and Ardour could load it… But I’m quite annoyed, because I do want to uncomment these lines and use the whole 20kB map file !!
(For comparison, the largest file in the “midi_maps” folder is some NanoKontrol binding file that is 10,8kB…)