Batch modify MIDI triggers

I use a MIDI foot pedal to control several pieces of software. The pedal, however, communicates over different MIDI interfaces/channels from time to time (wired, wireless, etc). Currently the only way to change the channel and interface is by selecting each macro individually and changing the settings by hand. 3 softwares x 10 macros * 2 settings = a lot of clicking :weary_face:

Feature request: I’d love a way to select multiple macros and change the MIDI channel/interface trigger settings all at once.

In the meantime/otherwise... it seems to me that you might want to:

  1. have all the relevant macros in a macro group;
  2. make copies of that group;
  3. for each macro group, change the trigger values of the macros as required;
  4. create a macro to activate and deactivate those groups conveniently.

For that final step, see the wiki about macro group activation actions.

For step 3, I believe that this could be done by manipulating XML and if so, there are knowledgeable forum members who could advise on that.

There are several ways to go at this:

Put the actual macros, without triggers somewhere. Create a macro group for each configuration. Create macros there that are aliases of the real macros (ie, execute each one using the Execute a Macro action) which you can do by selecting all of them and choosing Edit ➤ Make Alias. Configure the trigger as required. Then enable/activate the macro groups as required. This is likely the best way.

Alternatively, you could just duplicate the macros and adjust the triggers, and enable/disable them using a macro to mass enable/disable the variants.

Alternatively, you could use AppleScript to modify the triggers.

Or you could quit the Keyboard Maestro Engine and editor and modify the XML of the Keyboard Maestro Macros.plist file. Very carefully.

There’s a lot more to explore! Especially curious about the AppleScript solution. Thanks :folded_hands: