Hi Motokiyo44,
yes, 60 is C4 (if I'm not mistaken).
10 second: erase
That's definitely possible, but the more special cases you add, the more complex the whole thing becomes.
Why don't you define a note key for erase?
Double play the same note: SPACE
Yes, possible, too, and not so hard.
A scheme would be like this:
Replace the first translator like this:
Code: Select all
Translator 0.0: Incoming Note On: start 3s timer
Options: swallow
Incoming: Note On on ch. 1 set 'pp' to note with any velocity
Rules:
if pp==g0 then pp=10
g0=pp
Outgoing: One-shot timer "Delayed Keystroke": 3000 ms delay
Instead of directly assigning g0 to the currently played note, we store it in the temp variable pp. Now if pp has the same value as the previous note (pp==g0) then change the note to 10. 10 is an arbitrary value which probably is too low for your keyboard, so we use it as a special value meaning SPACE.
Of course, then you need a translator to react on g0==10:
Code: Select all
[x] Translator: Space
Incoming: On timer "Delayed Keystroke"
Rules: if g0!=10 then exit rules, skip Outgoing Action
Outgoing: Text: SPACE
And to make sure the double detection is only happening when not trying to play two times the same letter, reset g0 to 0 at the end (after ALL the other translators)
Code: Select all
[x] Translator: last translator, reset g0
Incoming: On timer "Delayed Keystroke"
Rules: g0=0
Outgoing: none
Hope that makes sense.
Florian