Filter Notes To Separate Channels (Translator Pro)

I’m trying to make a rule where the an incoming note from one port filters only that one specific note to a channel on another port (and expand that to other specific notes)

E.g., on Virtual Port 1, C1 outputs C1 and only C1 on Port 2 Ch1 only, C#1 outputs C#1 and only C#1 on Port 2 Ch2 only

I’m very new to the rules part of BMT so I’m not really even sure how to accomplish this. I’ve looked in the manual but… having trouble wrapping my head around it

One of the parts I don’t get is that in the “note to…” examples I see here in the forum it seems like you have to specify a velocity but I want the played velocity to pass through

To filter different notes to different channel, just change the outgoing channel in the translator.

To send to different ports, you have to define the target port as part of the outgoing message in the translator, preset or project. Translator routing overrides preset and project routing, preset routing overrides project routing. This is a good tutorial for dynamic port routing. In summary, I try to group my presets by routing I want instead of using translator level routing for ease of maintenance. It is much easier to change a few dozen preset routings then hundreds or thousands of translator routings.

Note, that Bome MIDI Translator Virtual MIDI Ports cannot be routed back to themselves in MT Pro. One end of the port needs to be MT Pro and the other end must be an external device or application.

Steve Caldwell
Bome Customer Care

Also available for paid consulting services:

I see, very helpful I’ll give that a shot.

And what about the issue where it seems to require an output velocity? I want to pass the played velocity, I’m just trying to route drum parts from a pad or keyboard to individual channels

If you use the local variable qq as both input and output velocity, and don’t modify it in rules, it should work just fine.

great that worked!

Thank you Steve!

Hey Steve so

it is working well, except one issue is that I can’t select both note on and note off, so the message becomes continuous (like a forced legato kinda deal if you’re familiar)

this is how I have it set up

it seems like I would need to duplicate all of these for a note off message, but I’m wondering if there’s a more elegant simpler way I’m not aware of?

You have few choices,

  1. As you say, duplicate your note-on translators and then make then note-off so you have two translators per note
  2. You can do this with rules but it may be harder to understand

Incoming: oo pp qq
// check for note on or off, look at status nibble this little trick looks for note messages
// If the value of rr is not 0x80 then it is not a note-on or off message
if rr!=0x80 then exit rules skip outgoing action
// If you get here you have a note message (either 0x9x or 0x8x)

// change the MIDI channel here where MIDI CH 1 is 0 … MIDI CH 16=15 Here we us MIDI CH 2
// OR the outgoing midi channel with the status byte

Outgoing oo pp qq

I hope this helps!

I think I have a request for an enhancement for incoming trigger as “note-on or off” message but it isn’t urgent because the above works fine. The only side effect, is that if you are looking at the log, you will see it in Incoming for any 3 byte message.

Steve Caldwell
Bome Customer Care

Also available for paid consulting services:

Hey Steve!

Yeah… I just duplicated and made Note Off translators :joy:

The rules bit is way over my head, I will need a bit more time with the manual.

But! I personally think the combined trigger is a good idea. Obviously because I’m selfish-- kidding. But I think it would benefit your users (especially those of us who work in DAWs that are kind of MIDI-dumb like Pro Tools). I do see how it’s not urgent as you can just do the above.

Anyway, thanks again for your help!

Glad you have it working. Happy New Year!


1 Like