Encoder send keystroke

datvo.videography

2020-11-04 05:35:19

Hi I'm new here

I have a arturia beatstep

I searched the forum but I didn't found my case

My case like this

Turn encoder  right  -> press down Q than press down U

Release encoder -> Key Q&U up

Turn encoder left -> press down Q than press down I

Release encoder -> Key Q&I up

Thanks

For more information: https://youtu.be/qCo8L7CpuK4 from1:50

 

Steve-Bome Forum Moderator

2020-11-04 17:29:04

Hi,

This is fairly complex for a newbie but please find the attached.

The main thing you need to do is use a combination of global variables and timers

This is how it works.

The global variable ga is set to ensure that the u and I keystrokes are not sent more than once in a sequence (while turning the encodeer)

The global variable gb determines the direction (-1 for left and +1 for right)

The global variable gc ensures that the q keystroke is not set more than once during a sequence.

The way this is set up is for relative encoder (127-65 for left turn and 1-63 for right turn). Usually the encoder will only send just the lower end or upper end of these ranges.

When you turn an encoder the following happens.

1) A watchdog timer is set to 500 ms. As long as you are turning the encoder, the watchdog timer will not fire. When you stop turning for 500ms then this will signal key-up events. With out touch sensitive encoders, this is the only way I can approximate when you stop turning. You can set the outgoing delay to change the speed of release.

2) When you turn the encoder, the timer "Down" is fired. Three translators control what is sent on down.  Q down is always sent but only once (depending on the value of gc).  Depending on the direction (value of gb) either key down U (for right) or I (for left) is fired. The U or I down keystrokes are delayed by 20 ms The value  of ga ensures duplicate keystrokes for U or  I are not sent. The value of gc  ensures that duplicate keystrokes for Q Down is not sent. The value gb is set to either +1 or -1 depending on the direction your are turning the encoder.

3) When the watchog timer goes off, the timer Up is fired.  Again 3 translators control what up keystroke sequences are fired depending on the direction value of gb.  The Q-Up is delayed by 20ms (assuming first key pressed should be last key released). You can change the delay on any keystrokes to the sequence you want. The values of ga, gb and gc are reset to 0 for the next sequence.

 

Have fun!

 

Steve Caldwell
Bome Customer Care


Also available for paid consulting services: bome@sniz.biz

 


Attachments:

Arturia-Beatstep-Encodeer-to-Keystroke-2020-11-04.bmtp

datvo.cnstudio

2020-11-06 05:00:49

comment

I 've tried it, but the problem i found here at the begining, if i turn left/right, The outgoing is right But if at first i turn left multiple times, than turn right a little bit, it still send the out going of turn left because the encoder send value still lager than 64. I think could i set Encoder to Relative mode 2, such as turn left is 127, turn right is 1. Thanks.

Steve-Bome Forum Moderator

2020-11-06 05:31:17

Yes, it should work where 127 is left and 1 is right. Please re-program your encoder for that. This is how I tested on my Arturia Beatstep.

 

Steve Caldwell
Bome Customer Care


Also available for paid consulting services: bome@sniz.biz

datvo.videography

2020-11-06 21:10:58

comment

Thanks, ít work now. I do it.

datvo.videography

2020-11-07 12:55:43

Could you check this one help me, I create 16 preset, each preset is 1 encoder.

But when I turn 1 encoder, it active 16 preset at the same time.

Thanks

 


Attachments:

Ressolve x midigrade.bmtp

Steve-Bome Forum Moderator

2020-11-07 21:53:06

Yes, since all of the presets use the same watchdog timer, things will get quite confusing.

This is what I did.

I create another preset that outgoing action is to activate only the preset you want for that knob (based on the value of pp and calculations of preset number in rules of preset 1.

The calculation of which preset to activate is in the rules of translator 1.1

 

I set up presets 0 and 1 as always on (to disable de-activation of these)

 

Since I'm using preset numbers instead of preset names, it is important that you keep all of these presets together and in the same order. Otherwise you will need to adjust the rules to calculate the preset in translator 1.1

Since only 1 of the 16 presets is now active at a given time. You can use the same timer name for all 16 knobs and only the active preset will be using the timers.

It was unclear with what you were doing with the last preset  (ConTrast) so it will be disabled along with the ones surrounding it. That one used the same incoming CC as preset 17 which  is labeled "1"

Steve Caldwell
Bome Customer Care


Also available for paid consulting services: bome@sniz.biz

 


Attachments:

Resolve-MIDIGrade-SJC-2020-11-07.bmtp

datvo.videography

2020-11-08 08:55:43

comment

1 more thing, i meet the error "Veronika", in errors Window What's mean? Thanks

Steve-Bome Forum Moderator

2020-11-08 23:59:26

comment

No idea. Do you have a MIDI port called "Veronika" or maybe another application trying to access a port the is being used by your project?