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

darvas

2018-08-04 20:48:14

Hi,

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?

Steve-Bome Forum Moderator

2018-08-04 22:02:59

Hi,

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
bome@sniz.biz

darvas

2018-08-04 22:46:58

comment

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

Steve-Bome Forum Moderator

2018-08-05 00:02:44

Hi,

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 MIDI.org.

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
bome@sniz.biz

 

 

Steve-Bome Forum Moderator

2018-08-24 05:00:03

comment

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 pp=pp&0xF0 // You will now have pp a 90 // Now OR it with the channel you want pp=pp|1 // 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 bome@sniz.biz