How to route midi command to different virtual outputs and able to turn them off


I am trying to control 6 different machines with one MIDI controller, sending out info on the same MiDI channels.

I am thinking if I use 6 different virtual outputs( one for each machine) and I would like to able to turn each virtual channels on off if I need to , so if I only want to send a note to ,lets say, machine 1 to 3, I can turn 4 5 and 6 off.

What are he commands to turn message going on off ( or enable/disable virtual outs) with designated buttons/keys?


What you should do is set up different presets for each output port you want to send to. Under each preset, have translators for the MIDI patterns you want to use. Typically this would be 3 note patterns and 2 note patterns in Raw MIDI

pp qq rr

pp qq

Then to you need to set up another preset to control the other presets and put translators there to turn on and off the presets for the ports you want to switch.

So if you have 6 ports you would have 7 presets (one for each port and a control preset).

In the 6 presets you define the outgoing ports for that preset (at the preset level) and have translators set up under that to handle the MIDI message.

In the 7th preset you have translators to turn on or off one or more or the other 6 presets.

Make sense?

Steve Caldwell
Bome Q and A Moderator and
Independent Bome Consultant/Specialist

Hi Steve,What is the command line for turning the channel on and off?
Lets say on output 1 goes midi channel 1…..


First of all, let me help you differentiate between MIDI channels and ports.

Each device that can connect to a computer will show up as one or more “ports”. Usually each device has a single port. The device may or may not be able to communicate on multiple MIDI channels. The messages that go to or come from a given port only go to that device/port (unless the device had the capability of a MIDI thru connection.

For every MIDI device (port) you can have 16 MIDI channels. Usually devices are programmed to send and receive on specific MIDI channels (but all on the same port).

MIDI channels are numbered 1-16 but represented as 0-15 on the actual MIDI messages.

Most of the time you look at MIDI messages you see it in hexadecimal format which is 0-F where decimal 10= hex A and decimal 15 = hex A.

In MIDI, you have different message types where note on is hexadecimal 9x where 9 is the message type and x is the MIDI channel. So hex 90 would represent Note on MIDI channel 1. 91 would be note on MIDI channel 2 etc.

I’m not going to go through all of the MIDI message types. For that go to

I will, however give you an example of a complete note-on message. (in hex).

Note on – note 60 on MIDI channel 1 with a full velocity (hardest hit), would be 90 3c 7F .

The same note on MIDI channel 16 with the same velocity would be 9F 3C 7F.

Now in MT Pro if you want same port different channel you simply change the value of the first byte (MIDI status byte), but it all goes to the same port.

If you want to send to different ports, you have to set up presets to define only the ports you want to send to and then either enable them or disable them with other translators and rules.

I hope this helps!

Steve Caldwell
Bome Q and A Moderator and
Independent Bome Consultant/Specialist



Sorry I must have missed your question earlier.
A MIDI Note On message is Hex 9x, 9 represents Note-On and X represents the channel which is 0-15 (for MIDI Channel 1-16).
So 90 Hex is note on channel 1. 91 Hex is note on channel 2 etc.
Note off would be 8x
An entire note message for note on is 9x nn vv (all in hex) where nn represents the note number and vv indicates the velocity. Notes and velocity are 00-7F Hex. The lower the tone the lower the note number. The lower the velocity, the softer you want it to sound.
Note on MIDI Channel 1 Highest note highest velocity would be 90 7F 7F
Now if you want to change the channel from MIDI Channel 1 to 2, you will need to change the second half (lower nibble) of the first byte.
Here would be example rules to do this
Say incoming MIDI message is 90 7F 7F and you want to change to 91 7F 7F
Say incoming midi message is assigned variables pp qq rr
To just change the channel you only have to manipulate pp.
// First extract only the upper half of the byte. The below will strip off the channel
// You will now have pp a 90
// Now OR it with the channel you want
// So now pp is 91H instead of 90H
So you can output
pp qq rr
And you will get 91 7F 7F (or note on MIDI channel 2 highest note highest velocity.)
Steve Caldwell
Bome Q and A Moderator and
Independent Bome Consultant/Specialist

Hi Steve, new to the forum here. Would this be along the same idea for this scenario:

I would like to be able to send midi note to bomes and have it turn on or off the port.

What i’m trying to accomplish is to have Osculator read osc values from my video switcher, and send midi notes out to Bome to engage or disengage the ports. I’d also have Touch OSC sending midi notes to Bomes and executing apple scripts, but I don’t those translators for TouchOSC midi to applescripts to execute unless Osculator allows the port to be open. Does that make sense?

My end goal is to have my video switcher program output OSC values dictate weather or not my TouchOSC midi notes can trigger my applescripts to execute PTZ camera preset commands. The problem we’ve been having is People keep activating the ptz presets while that camera is live on the program output, resulting in a roller coaster visual effect.

Hi Zack and Welcome to the Community.

The below diagram is how I think you have described. In this example, you would set up OSCulator to convert OSC to (probably) MIDI Notes that would enable and disable presets that handle your AppleScript handling. So you would have your PTZ AppleScripts under 1 or more presets and then you would take the converted OSC messages (notes in MT Pro) to disable or enable various sections( presets).

You would define 1 preset with input as Touch OSC and another preset with input as OSCulator.

The notes from Osculator would either enable or disable the TouchOSC preset.

If there are any things you never want disabled, you could put them into a separate always on preset with input also defined as TouchOSC.

Does this make sense?

Steve Caldwell
Bome Customer Care

Also available for paid consulting services: