В AppleScript нет ничего подобного. Вам нужно будет отслеживать, каким было предыдущее значение, сравнивать/обновлять его с тем, что есть сейчас, и предпринимать соответствующие действия. Вы не упоминаете, как вызывается сценарий или какое состояние вы сохраняете, но ваш фрагмент будет выглядеть примерно так:
property previous : missing value -- keep track of the previous value
if previous is missing value then set previous to item 3 of message -- initial value
-- other stuff
if item 1 of message = 176 then
if item 2 of message = 97 then
set change to (item 3 of message) - previous -- get any difference
if change < 0 then set change to -change -- absolute value
if change is not 0 and change = 1 then -- or whatever threshold comparison
set previous to item 3 of message -- update
tell application "System Events"
key code 126
-- other stuff
end tell
end if
end if
end if
У меня нет MidiPipe для тестирования, но если сценарий не будет сохранять постоянные свойства, вам нужно будет сделать что-то вроде чтения из файла или использовать NSUserDefaults
, чтобы сохранить значение переменная previous
между запусками.