User Tools

Site Tools


trigger:MIDI

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
trigger:MIDI [2017/09/03 23:40]
peternlewis
trigger:MIDI [2021/12/30 02:30]
peternlewis [Raw Packet]
Line 3: Line 3:
 You can trigger on specific notes, specific controller changes (v8+), or on any raw MIDI packet (v8+). 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.+If the *Allow Recording* ​(*MIDI Learn*) ​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.
  
 ====== Notes ======= ====== Notes =======
Line 11: Line 11:
 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. 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 [[token:​TriggerValue|%TriggerValue%]] token will hold `channel,​note,​velocity,​device` for press and release (just the velocity was included prior to version 8.0).+The [[token:​TriggerValue|%TriggerValue%]] token will hold `channel,​note,​velocity,​device` for press and release (just the velocity was included prior to version 8.0).  You can easily access the individual parts using the token array notation, eg `%TriggerValue[2]%` will be the controller (8.0.4+).
  
 ====== Controller Change ======= ====== Controller Change =======
Line 29: Line 29:
 * changed >= — every time it changes and is greater than or equal to the specified value and was not previously. * changed >= — every time it changes and is greater than or equal to the specified value and was not previously.
 * changed > — every time it changes and is greater than the specified value and was not previously. * changed > — every time it changes and is greater than the specified value and was not previously.
 +* decreases — every time it changes and is less than the previous value. (v8.0.4+)
 +* increases — every time it changes and is greater than the previous value. (v8.0.4+)
  
 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. 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.
Line 34: Line 36:
 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. 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 [[token:​TriggerValue|%TriggerValue%]] token will hold `channel,​controller,​value,​device`.+The [[token:​TriggerValue|%TriggerValue%]] token will hold `channel,​controller,​value,​device`.  You can easily access the individual parts using the token array notation, eg `%TriggerValue[2]%` will be the controller (8.0.4+).
  
 ====== Raw Packet ======= ====== Raw Packet =======
Line 42: Line 44:
 This should allow you to capture things like SysEx and HUI protocol packets and the like. This should allow you to capture things like SysEx and HUI protocol packets and the like.
  
-The [[token:​TriggerValue|%TriggerValue%]] token will the space-separated hex values representing the packet. ​+The [[token:​TriggerValue|%TriggerValue%]] token will the space-separated hex values representing the packet, followed by a comma, followed by the source device.
  
 +If you extract just the bytes (ie, everything up until the first comma), then you can easily access the individual parts using the token array notation, eg `%TriggerValue[3] %` will be the third value (8.0.4+) — note the `[space]` in `][space]%`,​ the space is the separator for the array, instead of the default comma.
trigger/MIDI.txt · Last modified: 2021/12/30 02:30 by peternlewis