Twister encoder to Mouse wheel using CC

Hi there,

Referencing this video: https://www.youtube.com/watch?v=ZGzbfrmzjTc&lc

Using Windows 10. My goal is to translate the encoder movement on my MF Twister to mouse wheel, but so far the only way I’ve been able to make the video’s method correctly translate left/right knob turns is to change the encoder type to 3FH/41H.

This works great in a lot of scenarios, but there are some places where I would really like to map the encoder using CC. I’ve been able to get close by telling BMT to “use any value” - but when I do that the output only travels in one direction whether or not I place a positive or negative value in the Wheel Delta field.

What am I doing wrong?

Hi, Jeff, and welcome to the forum!

Here is how to set it up, however understand that if you hit the end points (0 or 127) and continue to turn, the mouse will no longer move because the encoder stops sending a value. Also since we have to track the last encoder value to determine the relative movement amount, each encoder will need it’s own global variable. I used “ga” here.

Incoming: Control Change on MIDI CH1 CC1 any value set to qq

Rules:

// For right movement
if qq>ga then tt=qq-ga
// For left movement
if qq<ga then tt=ga-qq
if qq<ga then tt=tt*-1

// Optional multiplier if movement is not enough
tt=tt*3

// Don’t go beyond limits of 0 and 127
if qq>127 then qq=127
if qq<0 then qq=0

// Set to compare for next iteration
ga=qq

Outgoing (For left/right movement)

image

Outgoing (For up/dowwn movement)

image

Outgoing (for wheel movement)

image

Steve Caldwell
Bome Customer Care


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

Hi Steve and thanks for the welcome. Your solution worked very well, thank you so much.

One minor thing I noticed was that the Twister knob was reaching it’s min/max before the actual control would, but changing the multiplier to 4 fixed that issue. It’s working as well as I’d hoped, thanks again.

You are quite welcome.

If you want to re-center the encoder without moving it, you can do this by setting a global variable gb (like a note-on in a different translator)

Then in the existing translator put at the end

if gb==1 then exit rules, skip outgoing aciton

With note off it would set gb to 0 (again in a separate translator)

Then the action would occur again when releasing the note.

Steve Caldwell
Bome Customer Care


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