Hi, something like this should work.
- First we look at the incoming encoder CC and set it to a local variable (pp) . So the single translator can handle all encoders in scope.
- Then we set a base outgoing note value based on the encoder incoming CC
- Now we calculate the outgoing note based on the new base that you set.
// Only process CC's withing scope
if pp<16 then exit rules, skip outgoing action
if pp>23 then exit rules, skip outgoing action
// set base outgoing note
if pp==16 then rr=24
if pp==17 then rr=50
if pp==18 then rr=88
//... and so on
--- further down
if qq>64 then ga=rr-tt
if qq<64 then ga=rr+tt
// Adjust base for right turn
if qq<64 then ga=ga+1
if qq>64 then qq=qq-64
xtm edit controller 2023–sjc.bmtp (322.2 KB)
Edit: I also added a global variable (zz) to enable the log messages to only show when zz=1. If you don’t like the logging messages just turn zz=0 in the Init rules.
Steve Caldwell
Bome Customer Care
Also available for paid consulting services: bome@sniz.biz