Routing a range of 9 notes to a different range on a different output

Ok so I need to do something similar but not exactly the same.

I need to take a range of 9 note on and off message from a pad and route them in the same order to a different range of 9 notes on a different output to match with something else.

Hi and welcome to the Bome Forum!

First, I split this out to a new thread because it is indeed a different request.

The attached should do what you want. I use a single translator and a little trick I learned so I could use one single translator for both note on and off messages.

I look at the first status byte (local variable “oo”) and AND it with 0xe0 (224 decimal). If the result is 0x80 (128 decimal) then it is either a note-on or note-off message and the translator will work with it. If it is not a note message then the translator is bypassed.

Since I have a MIDI thru route set, all other messages are passed through untouched.

I then look at the note range for the second byte (local variable “pp”) to determine if it is in the target input range. If it is not, the again, I abort the translator.

Finally I add 50 to the incoming note range to produce the outgoing note range. I leave the velocity, untouched.

Here are what the rules look like:

// look for notes only
if rr!=128 then exit rules, skip Outgoing Action
// determine input range 9 note range
if pp<5 then exit rules, skip Outgoing Action
if pp>13 then exit rules, skip Outgoing Action

// start output range 50 higher than input range

Then the outgoing is the same as incoming but with the modified note number.

Transpose-9-notes.bmtp (1.0 KB)

Hopefully this is something close to what you were looking for.

Steve Caldwell
Bome Customer Care

Also available for paid consulting services:


Thank you so much for taking the time at this detailed responses. Im gonna jump into this today and hopefully get it all figured out. Much appreciated

My pleasure!