====== Midi routing for multi-channel-midi processing plugins ====== ~~NOTOC~~ {{tag>[au_midi_fx au_midi_routing midi midi_router tips_and_tricks}} **Table of Contents:** * [[#Standard routing]] * [[#Naive approach]] * [[#Working solution]] * [[#Work-arounds for problem cases]] ===== Standard routing ===== 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. {{ :midi_routing_-_standard.jpg?direct&400 |}} . ==== Naive approach ==== 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. {{ :midi_routing_-_naive_approach.jpg?direct&500 |}} . ===== Working solution ===== 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) {{ :midi_routing_-_involving_multi_channel_midi_processing.jpg?direct&600 |}} . ===== Work-arounds for problem cases ===== === Set Output Channel === 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. The [[midi_au_output_channel|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. * **Midi Tools:** Use the included ‚Midi Clone and Filter‘ plugin * **[[StreamByter]]** script: [[streambyter_force_channel|Force Channel with GUI]] * **[[mozaic_plugin_engine|Mozaic]]:** script: [[https://www.dropbox.com/s/zjgtxd6y13aei1m/MIDI%20Channelizer%20Pads.mozaic?dl=0|MIDI Channel Changer Pads]] \\ === Host without midi matrix === If a hosts lack complex midi routing and only support midi plugins for a single track/slot, there is a pair of Mozaic scripts for host-wide midi transmission. * **[[mozaic_plugin_engine|Mozaic]]** script: RadioMidi Transmitter and RadioMidi Receiver \\ === Apply Input Channel Filter === If a host doesn't offer a midi input filter for their instrument slots, you can insert a scipt plugin into the connection between the the multi midi input processing plugin and the instrument. * **[[StreamByter]]** script: [[streambyter_channel_filter|Channel Filter with GUI]] * **[[mozaic_plugin_engine|Mozaic]]** script: [[https://patchstorage.com/midi-filter-and-transpose/|Midi Filter and Transpose]]