Dear Paul and Robin,
Many thanks for the suggestions.
I have quite a few control surfaces, all of whose protocols I fully understand. Apart from the transport controls on my Yamaha O2R96, I have devices like the Novation Zero and a ShuttleXpress. For both of these I’ve written proxy daemons so that they show up as ALSA midi devices and emit and receive regular MMC, as is given out by the O2R96.
I’m looking for a solution that updates the record lights, and other transport status indicators, on all the various control surfaces. Ideally, the central transport control needs to echo the transport rolling/record/stopped status to all the surfaces. I have just compiled Ardour6 from source. I guess I can add the status reflection functionality to the Ardour source if its missing or else write another daemon that coordinates all the surfaces and indicators. I also need to do MTC in the reverse direction.
The reflection of automation to control surfaces is also needed for my Behringer BCF2000 which also has flying faders as well as another set of transport controls.
I can look further into that and the Lua option.
A problem that I have at the moment is that most of my midi devices are appearing as ALSA devices. (I am familiar with patching these manually via the qjackctrl gui or the equivalent alsa API from a C program.) Whereas Ardour is only showing, under its preferences/MIDI/Ports tab, the 5-pin DIN ports on the I/O interface it is using (Scarlett 18i20) and these appear under the ‘MIDI’ tab in qjackctrl. So I cannot connect the O2R96 transport controls (via its 8 midi-over-USB ports) to Ardour either way. To recap, the two ways would be via the Ardour preferences tab (where the devices are not showing up) or via qjackctl, where the input and the output I wish to connect are on different tabs (MIDI and ALSA) and hence cannot be interpatched on qjackctrl GUI.
I guess I do not know enough about why midi ports should show up one way or the other (Jack v ALSA). Perhaps you can advise me on that? Possibly I’ve noticed a slight difference in this respect between what shows up where under Ardour5.12 (prebuild) and Ardour6 (compiled myself).
Unless I can understand further, in the meantime, a start might be to put an old fashioned midi cable between the O2R96 physical MMC output port and the 18i20 physical midi input port. Sufficient options are visible in what I’ve outlined above for me to try that.
But I need to master this a lot more: I have reverse engineered the O2R96 exclusive messages that will make it a great, motorised, control surface for Ardour. Perhaps there are some existing common control-surface profiles that suit both ends (O2R96 and Ardour) but if I am to connect multiple control surfaces, which is what I want, then it looks like I’m going to need to write some code myself.
Sorry for a very long note. I was trying to be clear. In anticipation of further hints … thanks