Midi routing for multi midi input processing plugins

When using several generators and synth in a hosts session, they normally connect one-to-one. The midi generator directly sending to the instrument producing the sound.

Per default the instruments listen to all arriving note information, but since only one generator sending to it, there is no notes mixup and therefore no further setup necessary and no need to specify output or input channels. .

If midi processing plugins are involved that take multiple instruments as input, one might think that one could simply route all generators to the plugin and let all instruments read from the plugin. But then all instruments would play the notes of all generators as that is the output of the processing plugin.

Furthermore since most generators default to send on midi channel one (drum type generators on channel ten) the processing plugin can't even distinguish where a note or midi event came from.

.

To get the routing running as in the initial one-to-tone example

  • The generators need to be set to different output channels to be destinctive for the midi processor and also for the instruments
  • The instruments need to apply input filters so that one a specific selection of channels arrives at the intrument. The filter is in general not applied in the instrument plugin, but in the app hosting the instrument (AB3, AUM, apeMatrix, Cubasis, AuriaPro, BM3 etc)

.

Some problems

Everything working now ? Mostly - there are some tiny problems with the above solutions:

  • There are midi generators that don't allow to specify the output channel
  • There are midi generators that have a setting for the output channel, but don't statesave it - so every time when reloading the sesssion one has to setup the output channel again

The midi au output channel wiki page summarizes all midi generating plugins regarding their ability to specify the midi output channel and state save this value.

If a generator plugin by itself wont't change channel, or forgets its channel settings one can allways insert a midi channel modifying plugin into the connection between the problematic generator and the multi midi input processing plugins forcing everything onto a specifiy channel.

Here are three solutions to force incomming events onto a specific output channel

Midi Tools:

Use the included ‚Midi Clone and Filter‘ plugin

StreamByter scripting:

XX = X4  # Use (output channel -1) and for XA <> 11, XB <> 12, XC <> 13 .. XF <> 16

Mozaic scripting engine:

@OnMidiInput
  outputTo = 5
  SendMIDIOut MIDICommand+(outputTo-1), MIDIByte2, MIDIByte3
@End
  • midi_routing_for_multi_input_processing.txt
  • Last modified: 2019/11/24 08:03
  • by _ki