If you want to control different engines with the same controller, there are two ways:
- you can setup the different engines so that they only receive a certain MIDI channel, and then you just have to choose the channel on your controller. This implies that you can change the channel on your controller quickly and easily,
- you can use any midi filtering tool (mididings is a really fine one, that I woul recommend, but you also can do it with qmidiroute or whatever) and create a patch (or route or filter) that will route the MIDI signal to the engines in a way that would be controlled by a knob or a button on your controller. You can check an example with mididings here:
https://github.com/PlagiatBros/PlagiatSetup/blob/master/Controls/Mididings/cmeKeyboard.py (you can omit the zyntrebleGMandela thing and the gateCancel): basically, the mididings patch routes the MIDI signal to a different pair of Output/Channel for each Scene, and the SceneSwitch is controlled by ProgramChange.
Hope this helps.
(btw Plagiat is a band, born on the ashes of Sebkha-Chott, running a live setup using synths, loopers, samplers, mixer, FX, routing, monitoring, lights management and VJ-ing using Debian GNU/Linux and free softwares only, as Sebkha-Chott did before)