Translate all types of MIDI messages?

Hello! I’m trying out the Translator Pro product for the first time. I’m trying to create a router that routes various ports and channels to virtual ports.

For example it might be something like:

  • Midi Port 3, Channel 3 → BOME port 1, channel 1
  • Midi Port 4, Channel 2 → BOME port 1, channel 2
  • Midi Port 5, Channel 1 → BOME port 2, channel 4

I know with the router you can route one port to another, but I need to be able to change the channel as well. I see you can do that by setting the Incoming and Outgoing to MIDI message and using variables to pass the data along while modifying the channel. But there it seems like I would have to make a preset for every possible type of midi event (note on, off, control change, program change, etc) which would be a lot of work.

Is there a way to set the MIDI Message for all types of events instead of specifying one?

Is there a better way to go about what I’m trying to accomplish?

Thanks!

Hi and welcome to the Bome community!

Yes indeed. See the following example.

First of all I gave all the ports aliases based on your names and assigned them to a given physical port. In this case, I used Bome Virtual ports as follows:

image

Assigning aliases is good practice, as if you change real device names, then you can just reassign them and not mess with a ton of rules.

You can learn more about aliases from this tutorial.

Then I’m using raw MIDI and rules to determine the incoming MIDI channel by masking the first byte and only looking at the lower nibble which contains the MIDI channel. For example

// Look for MIDI channel 3
rr=oo&15
if rr!=2 then exit rules, skip Outgoing Action

I do this for 2 byte and 3 byte message which covers all MIDI message types that contain channel information. For 1 byte messages, I just pass them through as there is no channel information.

Finally I organize my presets by port (device). I usually do that at the preset level because it is easier to do there then to modify individual translator port selection.

For more information about device selection, see this tutorial.

The first preset is just a housekeeping preset I use in most of my project and handles initializing the project.

And here is the project file. I did not test it so let me know if I got anything wrong.
All-Message-types-example-2024-12-03.bmtp (2.9 KB)

Steve Caldwell
Bome Customer Care


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

Thank you so much for the detailed (and fast!) response! I’ll try this out later today. Thanks!

1 Like