Hey guys,
I've made an example here of this working, using a knob input, which I use
B0 00 oo in the example.
B0 00 being the first MIDI note on the first channel and
oo being the 'local variable'. You just need to edit
B0 00 to be the message from your knob, whatever that may be. I also use the 'global variable'
ga, just because it is the first one.
Here is the code for how this works:
Code: Select all
[x] Translator 0: Knob Clockwise
Incoming: MIDI B0 00 oo
Rules: if oo<ga then exit rules, skip Outgoing Action
Outgoing: Keystroke: Shift(A )
[x] Translator 1: Knob Anti-Clockwise
Incoming: MIDI B0 00 oo
Rules: if oo>ga then exit rules, skip Outgoing Action
Outgoing: Keystroke: Shift(Z )
[x] Translator 2: Track Knob Position
Incoming: MIDI B0 00 oo
Rules: ga=oo
Outgoing: (none)
There is 3 translators, it could normally be done in 1 but because you have keystrokes, a translator can only output 1 singular keystroke, and because there are 2 translators for this, we need to 'track' the knob position in another translator.
The first 2 translators basically check if the knob input is either higher or lower than the previously stored value. The previously stored value is set in the third translator. The third translator needs to be last so it tracks the position after the first 2 readings, this is basically setting the last knob position value.
And @in_every_end, the knobs on the MPD are physically endless, but they send an absolute value, as in after it reaches 127/7F, it stops sending messages when you turn it. Stupid, I know.
Hope this helps!
Scott