[Shift] function anybody?

remotecontrol

2009-02-08 20:07:57

How can I create a shift function in reverse? Example: A normal shift would behave like this. Hold [Shift], Hit [a] = A
What I want is this. Hold [a], Hit [shift] = A

ruediger

2009-02-09 10:09:46

Hi,

I don´t understand why you want to do that?!

I think that is not possible. We do make a keyboard simulation. Try this in a text editor. It doesn´t work there too.

Best regards,
Rüdi

remotecontrol

2009-02-09 16:14:20

not what i was hoping to hear :( I was just using the shift keyboard button as an example. It could be any combination of midi inputs.
The purpose for this would be for performance. I want to create a kind of guitar hero simulation. Where the left hand sets up the key and the right hand activates it.

I dont know MT very well at all but it seems like it should be easy. Some kind of simple rule that says x & y must be pressed in order to do make z.

ANYBODY?

remotecontrol

2009-02-10 01:34:54

Okay so I thought of a possible alternative in case the above function really cant be achieved.

First this wont work unless a normal "shift" function can be achieved. Shift function meaning 2 buttons must be pressed in order to achieve a specific action. (just like using the shift key on your PC keyboard) So if anyone can confirm that this could be done, that would be great.

So like I said if that "can" then this could be another solution: The concept is like having multiple shift keys for a single key (well call it X). (kinda like how the shift & function key can do 2 separate things to the same key).

so i would have multiple keys that act as shift functions for X. so when I hold (shift 1) then hit X, this would play Fsharp, and if I hold (shift 2) then hit X, this would play Dflat

So I think this might be a more practical approach to achieving what I want. What do you think guys?

ruediger

2009-02-10 09:32:33

Hi,

no I understand what you want :).

You can achieve this by using variables. You must take the Note On from a midi keyboard and set a variable there. Then if another key is pressed, and the variable is set, you can execute the rule.

Code: Select all

Translator 1: Set Shift
Options: stop=false
Incoming: MIDI 90 6D 01 
Rules: 
  ga=0
Outgoing: (none)

Translator 2: Set Shift Back
Options: stop=false
Incoming: MIDI 80 6D 00 
Rules: 
  ga=1
Outgoing: (none)

Translator 3: Use e.g. a
Options: stop=false
Incoming: MIDI 90 6E 01 
Rules: 
  if ga==0 then exit rules, skip Outgoing Action
Outgoing: Keystroke: UMSCHALT(A )
Hope this helps?!
Rüdi

remotecontrol

2009-02-10 14:42:44

ruediger wrote:Hi,

Code: Select all

Translator 1: Set Shift
Options: stop=false
Incoming: MIDI 90 6D 01 
Rules: 
  ga=0
Outgoing: (none)

Translator 2: Set Shift Back
Options: stop=false
Incoming: MIDI 80 6D 00 
Rules: 
  ga=1
Outgoing: (none)

Translator 3: Use e.g. a
Options: stop=false
Incoming: MIDI 90 6E 01 
Rules: 
  if ga==0 then exit rules, skip Outgoing Action
Outgoing: Keystroke: UMSCHALT(A )
Rüdi
I wont be able to try this until late late tonight but. This is defnitly a noob question but why cant I get a 80 in the "MIDI 80 6D 00" example but I can get a 90? I feel stupid :?

ruediger

2009-02-10 16:03:04

Hi,

when you press a key on e.g. a Midi keyboard, the Keyboard sends 2 Midi Messages. Note on = key down. Note off = key up. So my idea was: As long as you hold down the key, Shift is activated. Translator 2 is when you release the key.

Does this help?
Rüdi

remotecontrol

2009-02-10 20:13:03

Yes it helps and i think its gonna work but I am trying to copy your script and i can make an 80 for some reason. What am I missing? 90 represents the midi channel right? so whats 80 because i cant make it?

ruediger

2009-02-10 20:27:43

Hi,

90 = Note On, Channel 0, 91 = Note On, Channel 1
80 = Note Off, Channel 0, 81 = Note Off, Channel 1

It depends on your Midi Controller what kind of messages it is sending. My translators are only an example. So, try to use the capture Midi fucntionality to find out what your knob is sending.

Regards,
Rüdi

remotecontrol

2009-02-12 05:29:10

YEah! Its working!. THANKYOU RUEDIGGER! I also got it working with multiple button combos!

I changed the last translator rule so that if the shift is not pressed it skips the rule. This way nothing happens unless the shift is hit (rather than 2 options per shift).

Okay so Now I need to refine it a little. So ruedigger, Here is a kind of bug with these translators that I would like to get rid of (if possible). Right now it works like this:


IF I-
1) "HOLD" the Shift mechanism,
2) Trigger the Note button(note on),
3) Release the Note button(note off),
4) "Release" the Shift mechanism....
-it works fine....

But...the problem is this:

IF I-
1) "HOLD" the Shift mechanism,
2) Trigger the Note button(note on),
3) "Release" the Shift mechanism (**Before the Trigger is OFF**)
4) Release the Note button(note off)
-then the Trigger Function is Reversed. The note will be stuck on until I reverse the sequence of keystrokes.


I hope this makes sense. And if it does I am sure that can see how this would be a problem.

Is there a way to fix this? Ive tried many things but no Luck.


Thanks SOOO much again!