Dynamic Routing Question: CC Value Change ALL Outgoing

Ok so I’ve looked through the documentation and some other threads but the answers are very specific to those issues

I’m trying to create a rule where if, say, Ch.1 CC 32 value >125, all midi data (notes, CC’s, pitch etc…) are output to Ch.7, and if less than 126 stay on Ch.1. So, I want to make sure that if the CC 32 value 126 is switched, Ch.1 MIDI will ONLY output on Ch.7 until a value under 126 on CC 32 is sent and of course make sure that they don’t output simultaneously.

so I guess I need to assign the value first

INCOMING:
Ch01 CC32 - assign value to “qq”

Then rule would start:

If qq>=126 then
exit rules, execute outgoing action

but… not sure where to go after that. I think I’d need to specify via Raw MIDI? So something like:

OUTGOING:
96 pp xx
86 pp xx

I read a thread and opened a project made on the forum called Alternating Note Channels to check out the rules, wasn’t exactly what I was looking for, but did help me get some of this going.

Also, I’m assuming I want these routing rules to be first in the preset, correct?

oh and of course Rules should also contain:

if qq<=125 then
exit rules, skip outgoing action

(right?)

Hi,
Most of the time, I don’t like to use static MIDI thru routes but if you have SysEx it might be needed…

The below example should work. I have a different control port vs routing port as I’m sure you don’t want CC 32 translated from your control port.
The control preset receives from the control port and there is just on translator that changes the value of ga between 0 an 6 (MIDI CH 1 and 7) depending on the value of the CC.

The second preset has 3 translators. One for 3 byte message, one for 2 byte messages and one for 1 byte MIDI messages. For 3 and 2 byte MIDI messages we strip the channel information out and the use the OR function to add back in the MIDI channel from ga. For 1 byte MIDI messages this is not necessary since I can’t think if any instance where a 1 byte MIDI message sends channel information.

Then the raw output is resent with the new channel information. At the preset level I have defined aliases “Routing From” and “Routing To” as the MIDI ports I want to use for routing.

Again, all that is changed with these messages is the MIDI channel

// strip channel 0xF0
rr=oo&240
// add current channel
oo=rr|ga

Routing-Example-2021-04-03.bmtp (1.6 KB)

I suppose you could add a static route to pass through Sysex messages which doesn’t contain channel information.

It is important to know that if you use a rule like
// example only
if pp!=2 then exit rules skip outgoing action

Then the message will not be swallowed even if swallow is set and will pass through any static routes you have defined. The only way to prevent this is to set up an additional translator that you want to block thru path by making the output “none” but still let the translator execute the outgoing action.

Steve Caldwell
Bome Customer Care


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

i’ve tried to google but I’m not quite sure what you mean by this, what is the alternative? and by all means if there is a resource I should read instead i’d love to

static midi thru paths in Bome MIDI Translator is when you draw a line from input to output.

You should test the project I posted, there are no static MIDI thru paths. I’m doing everything with translators.

1 Like