New Tutorial: Map a relative encoder to absolute control change with Bome MIDI Translator

Hi,

We just released a new tutorial for mapping relative encoder to absolute. You can find it on YouTube at the link provided below:

https://youtu.be/yjgmIUIS0SI

The associated project file is attached.

 


Attachments:
1519395739727_relative-to-absolute-2018-02-22.bmtp

You are going to be sick of me Steve! Promise this is the last time I’ll ask questions…lol.

Ive just been trying out these two versions of relative to absolute encoder rules. Both work for me as expected in one direction, but the opposite direction will jump almost immediately back to fully the other way.

In the working direction, the cc’s are being output climbing in increments up to 127. But the other way will jump sharply to 64, then 1. Have I done it wrong?

Best regards,
Stu

I’m happy to help. Please post your project file and perhaps a log of what is being sent by opening the Log Window, and checking all boxes, then turn your encoders.

Steve Caldwell
Bome Customer Care


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

Thanks, heres a log: (4x clockwise increments followed by 1 x Anti clockwise increment.)

And Project file, (Its a bit messy)
MY ATOM BOME.bmtp (30.4 KB)

329370293 - MIDI IN [ATM SQ]: B0 11 01
329370293 - IN 2.0 MIDI B0 11 01, pp=0x01
329370293 - RULE 2.0:7 condition satisfied: if pp<=64 then ga=pp+ga
329370293 - RULE 2.0:7 expression: (if pp<=64 then ga=pp+ga) = 1
329370293 - MIDI OUT [Bome MIDI Translator 2 Virtual Out]: B9 11 01
329370293 - OUT 2.0 MIDI B9 11 01
329378791 - MIDI IN [ATM SQ]: B0 11 01
329378791 - IN 2.0 MIDI B0 11 01, pp=0x01
329378791 - RULE 2.0:7 condition satisfied: if pp<=64 then ga=pp+ga
329378791 - RULE 2.0:7 expression: (if pp<=64 then ga=pp+ga) = 2
329378791 - MIDI OUT [Bome MIDI Translator 2 Virtual Out]: B9 11 02
329378791 - OUT 2.0 MIDI B9 11 02
329380476 - MIDI IN [ATM SQ]: B0 11 01
329380476 - IN 2.0 MIDI B0 11 01, pp=0x01
329380476 - RULE 2.0:7 condition satisfied: if pp<=64 then ga=pp+ga
329380476 - RULE 2.0:7 expression: (if pp<=64 then ga=pp+ga) = 3
329380476 - MIDI OUT [Bome MIDI Translator 2 Virtual Out]: B9 11 03
329380476 - OUT 2.0 MIDI B9 11 03
329382710 - MIDI IN [ATM SQ]: B0 11 01
329382710 - IN 2.0 MIDI B0 11 01, pp=0x01
329382710 - RULE 2.0:7 condition satisfied: if pp<=64 then ga=pp+ga
329382710 - RULE 2.0:7 expression: (if pp<=64 then ga=pp+ga) = 4
329382710 - MIDI OUT [Bome MIDI Translator 2 Virtual Out]: B9 11 04
329382710 - OUT 2.0 MIDI B9 11 04
329384351 - MIDI IN [ATM SQ]: B0 11 41
329384351 - IN 2.0 MIDI B0 11 41, pp=0x41
329384351 - RULE 2.0:3 condition satisfied: if pp>64 then rr=pp-128
329384351 - RULE 2.0:3 expression: (if pp>64 then rr=pp-128) = -63
329384351 - RULE 2.0:5 condition satisfied: if pp>64 then ga=ga+rr
329384351 - RULE 2.0:5 expression: (if pp>64 then ga=ga+rr) = -59
329384351 - RULE 2.0:9 condition satisfied: if ga<0 then ga=0
329384351 - RULE 2.0:9 assignment: (if ga<0 then ga=0) = 0
329384351 - MIDI OUT [Bome MIDI Translator 2 Virtual Out]: B9 11 00
329384351 - OUT 2.0 MIDI B9 11 00

OK, so it looks like your controllers act like Mackie MCU V-Pots. They do
things a bit different. They use Bit 5 to set the direction flags and the the lower bits to set the distance moved.

So if the value is greater than 0x40 the amount (pp) moved in the negative direction is the (pp - 0x40) * -1.

Here re the new rules:

// if bit 5 is set it is negative
// the last 4 (bits 0-3) determine the distance moved
// This is like a Mackie V-Pot
// positive movement
if pp<0x40 then rr=pp
// negative movement mask upper bits
if pp>0x40 then rr=pp&0x0f
// amount moved negative
if pp>0x40 then rr=rr*-1
// update the global variable
ga=ga+rr
// don't go past limits
if ga<0 then ga=0
if ga>127 then ga=127

And the project file. I only updated translator 2.0.

MY ATOM BOME–sjc.bmtp (30.4 KB)

Steve Caldwell
Bome Customer Care


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

That works a treat.
Your a legend Steve , many thanks :blush:

1 Like