Blocking Translators

One of my keyboards has the habit of sending a blizzard of messages outlining the state of its front panel when I select a preset.

One of those messages kills the current patch in a synth module I control from that keyboard, so I decided to apply some Bome magic.

I’ve gained control over this behavior by eliminating the direct routing between the two instruments, and adding translators for messages I want to forward.

I had tried to add a routing, then use “blocking translators” as Steve has mentioned in a number of posts. This didn’t work out as I expected it to. I think I know why, but I would like to confirm.

Let’s start with Sysex. A translator with a Sysex the same length as the ones the keyboard sends, but with variables in a number of the bytes blocked all the Sysex messages (all sent by the particular keyboard in this use case are of the same length).

Because the keyboard is configured to communicate with the synth module on 1 or more of 7 midi channels, and there are a number of messages I want to allow, I used rules to represent what should be passed/blocked, and no outgoing action. This did not work out. All CC’s were passed.

I’m assuming that’s because I had a variable in place of channel, CC and value. Am I correct about this?

For translators, whether blocking or passing, the pattern needs to be the same length and match the pattern you are looking for.

For instance

Incoming: oo pp qq
Outgoing: None
Options: Swallow

will block all 3 byte MIDI Messages.

If you want to block all CC’s on any MIDI channel you would put

Incoming : CC on any channel any CC and any value
Outgoing: None
Options: Swallow

Does this make sense?

Steve Caldwell
Bome Customer Care


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

Thanks Steve.

I would appreciate help understanding what was wrong with the following:



3. Block Sysex Incoming

In this version of my BMTP file, there is a route from YC61 (Out) to Blofeld (In).

The Log Window shows that all CC’s are still be routed from YC61 to Blofeld, whereas the Sysex messages are being blocked.

In the next version, I deleted the route and added translators for Note On/Off. That works, but of course I am explicitly using translators for every message between the YC61 and the Blofeld I thought it may be better to allow the routing to work (perhaps faster?) and only to block the unwanted messages.

Did the block CC translator not work because it has an outgoing action, even though that action is prevented by the rules? Or perhaps did I make a mistake in the rules?

Thanks!

Hi, since you have a MIDI thru route between the two devices, you need another translator (after the current one) with incoming action from and to the same devices with an outgoing action of none.

Any time there is a MIDI thru path, exit rules, skip outgoing action will still go through the thru path. Swallow only works if:

  1. The outgoing action is none
    or
  2. The outgoing action is executed.
    or
  3. There is no MIDI thru path

Steve Caldwell
Bome Customer Care


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

Of course, that works perfectly.

Is BomeBox routing faster than using a translator for forwarding?

The synth module/keyboard connection feels snappier, but that could be just because I want it to!

I don’t think you should note much of a speed change. The translators are indeed pretty fast and the engine on BomeBox is the same as on a computer.

Also, instead of adding a blocking translator, you could have reversed the logic in the existing translator thereby blocking only those by executing the outgoing action (with none) and skipping the outgoing action which would allow the default route to pass the messages through. I always get tripped on on this reverse logic which is why I generally don’t do that but rather use blocking translators in addition.

Steve Caldwell
Bome Customer Care


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