Different midi ch to go to different out ports (Bome Pro but not BomeBox)

As the title says :slight_smile:
I’m trying to figure out how, from the same Midi in I can distribute to different midi outs according to the midi channel. Is this possible?
Note I have the BOME pro software but not the BOME box.

Appreciate your assistance!


The below example should help. I have set up a input device “My Controller’ and two output devices “Bome MIDI Translator Virtual 1” (BMT1) and Bome MIDI Translator Virtual 2” (BMT2). Each preset is set to output to only one destination. Within each preset, there are two translators. The first monitors for any 3 byte incoming MIDI Message and the second one monitors for any 2 byte incoming messages. Channel related messages are always either 3 byte or 2 byte so it should cover all MIDI message except for SysEx and 1 byte non channel related messages. If you want to pass those through, they will either need distinct translator (for port routing differences) or MIDI thru path set.

With each MIDI message we look at the low nibble of the first byte to determine the incoming MIDI channel. If it is not the target channel we do nothing. If it is we pass the message 3 untouched.

// only send to port one
// mask to get port number
// 15 is 0x0f
// here we are looking for MIDI CH 1 (zero based)
if rr!=0 then exit rules, skip Outgoing Action

Port Routing By Channel Exammple.bmtp (1.8 KB)

Please let us know if you have further questions

Steve Caldwell
Bome Customer Care

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

1st of all thank you very much for this!
I’ll need to go through this a few times to get what’s going on, since I had no idea
scripts were also part of this amazing software :slight_smile:

So sure enough I can’t make this work - and it’s undoubtedly due to my ignorance.
I’ve opened the project you sent, assigned my controller, tried various connections to my physical midi output ports… but only when I uncheck the translators a signal passes through, though obviously w/o filtering.
Still trying, but would appreciate your assistance.

I seem to be getting somewhere by trial and error :slight_smile:

For the benefit of others, attaching the file.
Port Routing By Channel Adi.bmtp (4.0 KB)

Thanks for posting this and good job!

Just a few comments.

I see you used aliases for your output ports (which is almost always a good thing).
In a few presets, you have the output directed to two different ports. For instance in Preset 0 you are direction to both Bome MIDI Translator 1 Virtual Out and to MIDI Group 1 1. Keep in mind that if the MIDI Group 1 1 alias is assigned to Bome MIDI Translator 1 Virtual Out, then you will get duplicate output messages on that port. For my example I did not use output aliases (for the sake of simplicity). It might be better to direct all input and output to aliases and then assign them accordingly. This makes the project more manageable as you change your physical configuration around. You find find out more about using aliases with this tutorial.

It appears that you only have one MIDI thru path. If you want SysEx to go to all ports (or 1 byte MIDI messages), you will need to create additional thru paths for them or set up translators accordingly to the location you want them to go.

Again, good job!

Steve Caldwell
Bome Customer Care

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

Thank you very much Steve!
As before, I’ll read, try, read, try (…) and finally figure it out :slight_smile:
And yes - I’ll watch the tutorial since the whole alias thing is unclear to me at the moment.

As for the MIDI thru path - could you elaborate a bit more?

Again thank you very much!

In Bome MIDI Translator, you can set up default MIDI through paths. Basically if a given incoming MIDI signal is not handled by a translator, the MIDI will go through the defined paths untouched. To avoid duplicate messages, you usually set the “Swallow” option within a given translator to avoid them. The Swallow option disables the MIDI through path if and only if the translator completes it’s outgoing action.

If you look at the below example. I have “My Controller” set to go to 2 different MIDI Group 1 Aliases. Of course the 2 and 3 byte messages will not go through since we have translators, but 1 byte messages and SysEX will go through these two paths.

Usually I do not use MIDI thru paths and only use translators (to avoid surprise duplicate message), but sometimes these paths are useful and sometimes necessary.

To set them up you simply drag a line between the input and output. You can click on a line an hit the delete key to delete the path.

Steve Caldwell
Bome Customer Care

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

Got it!
As always - thank you very much :slight_smile:

1 Like