Can I program a translator to change another's outgoing MIDI message?

I set my midi push-able(=click-able) encoder’s “Incoming” as Control Change, and “Outgoing” as Note On. (channel 14)

I want to set it to another midi channel(channel 15, 16, etc.) of “Outgoing” of turning encoder, only when I’m holding on the encoder’s button.
Can I do this?

Hi and welcome to the Bome community!

Yes, in this example, I used CC8 on MIDI CH1 as input for preset 0 (absolute) and MIDI CH2 for preset 1 (relative)

I use note-on MIDI CH 2 note 1 as encoder push and note-off when encoder release

I use global variable ga to determine the button state. If ga=1 then the encoder is pushed. If ga=0 then the encoder is not pushed.

I use the global variable gb to the desired output channel for the encoder CC.

When the encoder is not pushed (ga=0) then the CC output MIDI channel will be that of global variable gb. When the encoder is pushed (ga=1) we use encoder turn to set the MIDI channel. We have protection in rules to make sure the MIDI channel doesn’t go beyond 15 (MIDI CH 16). If it does, we simply leave it a MIDI CH 16.

I put ‘Log’ rules in the translators so that you can see the MIDI CH you have selected. When the encoder is pushed and you turn it, it only sets the MIDI channel and produces no output. This is the way I read you request.

The rules in translators 0.0 and 0.1 simply set the state of ga and produce no output.

The rules in translator 0.2 and 1.2 do most of the work. I commented them as much as possible.

Caveat, the encoder CC values on each channel are the same for absolute encoders.
So you may get odd behavior if you wish to retain different values for each MIDI channel.

If you want to use relative encoders, it might be more advisable. to do something like I did in preset 1. If your application supports relative encoders then you do not need to store values for each encoder.

In this case I used incoming MIDI CH 2 instead of MIDI CH1 for the CC turn. Then different rules for incrementing or decrementing the current MIDI channel.
My relative encoder puts out 0x7f for left turn and 0x01 for right turn.

For my example I used a FaderFox UC4 for input.

Here are my aliases:


You can learn more about aliases from this tutorial.

I used the preset to determine my MIDI device selection:
For more information about device selection, see this tutorial.

I hope this helps!

Note-Push to select CC channel.bmtp (4.5 KB)

Steve Caldwell
Bome Customer Care

Also available for paid consulting services:

Really thx to your big kindness.
But it feels a little difficult to me newbie, nevertheless I found another solution inspired by your help.
I write this for someone finding a few solution.

I made 3 presets for one encoder.
“Preset 1” has 4 translators.

  1. When it was pushed, deactivate ‘Preset 2’
  2. When it was pushed, activate ‘Preset 3’
  3. When it wasn’t pushed, deactivate ‘Preset 3’
  4. When it wasn’t pushed, activate ‘Preset 2’

All of these can be set outgoing as Preset.

And Preset 2, 3 have each other translators.
This feels little easier to me, and hope to be big help someone.
And big thx to Steve again.

1 Like