Absolute to relative of multiple CC's

I’ve setup a project, that converts absolute midi to relative midi, with a modifier that controls the steps for fine adjustment. The project works for one CC number, but needs 3 presets, with 6 actions. You can imagine, that the project would explode, if we do this for 20 - 30 CC numbers.

Is there a way to use one transform action (absolut > realtive) that converts all CC numbers, outputting a variable and a second action that labels the CC number back to the right Encoder.
This way it would only need to replicate on preset for every encoder. This would be a huge advantage.

Does this make sense for anybody? :wink:

I found an accepatble startegy right after rethinking the structure. It’s no that big deal to copy the 2 trasnformers for rough and fione tune. There’s no need to copy the Modifier-Key State, as this adresses the presets. I will finish the setup asap and upload it for all folks in the same boat.

My issue was the Loupedeck Live, which has a very basic midi implementation. This way I can use it as a controller for a channel strip (here Scheps Omni Channel, Tape To 8, Kirchhoff EQ), without sacrifying to much space on the desk and get labeled encoders and buttons. What You see is what you get.

It’s a setup for Reaper with Relative 2 Mode >>> 63=-1, 65=+1

Hi,

The attached uses one translator to control absolute to relative for 30 CCs.
In this case we are using CC0-CC29

The trick is to get global variable into a local variable before starting the operation and then to restore them when completed.

In this case the local operation has the options for 3 types of relative encoders.

See below:

// determine desired output type.  Leave others
// commented
Goto "127/1"
//goto "63/65"
//Goto "mackie"

Label "127/1"
if ss<0 then ss=128+ss
Goto "done"

Label "63/65"
ss=ss+64
Goto "done"

Label "mackie"
if ss<0 then ss=64-ss

Label "done"

I look at the value of pp (CC number) and determine the global variable to use for the last known value.

// get from global
if pp==0 then tt=g0
if pp==1 then tt=g1
if pp==2 then tt=g2
if pp==3 then tt=g3```
...

When done with the operation, I restore the global variable for the next iteration.

//restore to global
if pp==0 then g0=tt
if pp==1 then g1=tt
if pp==2 then g2=tt
if pp==3 then g3=tt
... 

Abs-to-Rel-Mulitple-2025-06-24.bmtp (3.1 KB)

Steve Caldwell
Bome Customer Care


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

indeed, much more elegant :wink: thanks a lot.