The MIDI trigger lets you execute a macro when a MIDI packet is received.
You can trigger on specific notes, specific controller changes (v8+), or on any raw MIDI packet (v8+).
If the Allow Recording checkbox is on, and the note field has the text focus, and you press a MIDI note, then Keyboard Maestro will set the fields to the correct value for you; similarly for the controller field or the raw packet fields.
The macro can execute when the MIDI note is pressed (note on), released (note off) or continuously while it is held down. This allows you to do things like have a macro execute when the key is pressed, and then a second macro execute when the key is released, for example to toggle a setting on and then off again.
You can configure the trigger to execute the macro when the note is received from a particular device, from a particular channel or from any device or channel.
The %TriggerValue% token will hold channel,note,velocity,device
for press and release (just the velocity was included prior to version 8.0).
The macro can execute when the MIDI controller value changes (v8+). Options include:
For the changed variants, the first controller change Keyboard Maestro sees is assumed to have changed if it matches the conditions. After that, only changes from the previous state are considered.
You can configure the trigger to execute the macro when the controller change is received from a particular device, from a particular channel or from any device or channel.
The %TriggerValue% token will hold channel,controller,value,device
.
This is a rather advanced trigger that requires some knowledge of the MIDI protocol (v8+). You can configure the minimum and maximum size of the packet, as well as the range of the first two bytes, and a regex that matches the specified packet (the format will be a sequence of space-separated hex values).
This should allow you to capture things like SysEx and HUI protocol packets and the like.
The %TriggerValue% token will the space-separated hex values representing the packet.