Use MIDI Filter To Allow Only Certain MIDI Channel(s)?

Wondering if it is possible to use the built-in GP MIDI Filter to block or allow only certain MIDI channels? I found a reference to a third-party plugin (pizmidi) that provides MIDI channel filtering, but was hoping to accomplish this in native GP running on Windows 10.

The issue is that I have both MIDI controllers linked to the same sets of plugins, and some plugins don’t allow me to specify the MIDI channel they are listening to (always in ALL mode). So I would like to use a filter to only pass channels 1-3 to the pianos group, 4-6 to the organs group, etc.

This can be done directly in the MIDI in plugins windows. Double clic on it, and simply uncheck the channels you don’t want to use.

Thanks, but that’s not the issue. I have one MIDI controller sending on channel 1, the other on channel 16. Both controllers are cross-mapped to each grouping of plugins because I want the flexibility to put any sound on any controller. So when a synth VST plugin is listening on all channels (because it doesn’t provide the option to only receive on one channel), then it is triggering from both controllers which is not what I want. In the example rackspace below, I would like to filter MIDI channels at the “group” level (pianos, organs, guitars, etc.) so the plugins below each group only receive messages for their assigned channel ranges.

Would that be a solution for you?

Well, in my rackspace the two MIDI In’s are cross-mapped to the Pianos and Organs. In other words, both controllers are mapped to Pianos and Organs. If there is a synth plugin below the one of the groups that is listening on all channels, it will respond to both controllers.

If I could use the Piano and Organ groups as filters that only allow certain channels to pass information to their subordinate plugins, it would eliminate the majority of issues. I use MIDI channel ranges for each instrument type, so Pianos are channels 1-3, Organs 4-6, etc., so depending on how I have the MIDI In source channels assigned will dictate which type of instrument it will control.

I found a free VST plugin called MIDI Polysher from eaReckon that lloks like it can do channel filtering. So if I use that plugin as my group layer, it will only pass the channels I specify. I was hoping to accomplish this without a third-party plugin, but this may work.

I understand, maybe this “Channel Filter” would be worth an enhancement request?
Can you enter this in the enhancement request category of this forum?

Absolutely, and thank you David-san and pianopaul for taking the time to reply to my question. The response I get from the GP community is nothing short of amazing!!

BTW, the Polysher plugin seems to do exactly what I need it to, and it’s free!! Here is the link.

1 Like

Could you mention this on the Plugins forum?

Sure thing!

I have successfully changed MIDI routing with Variations and/or Song Parts. Bypassing and enabling MIDI input blocks configured multiple different ways. Works very well. Controlled via MIDI controller.

With this kind of layout, if you set CH1 on a keyboard controller you will access the piano plugins or the organ if you set it to CH16. Here the MIDI filter plugins are only use to reduce the number of connections while the MIDI in blocks do the MIDI channel filtering.

Did you crop you screeshot with your teeth? :stuck_out_tongue_winking_eye:


Mmmmmm nom-nom-nom

I found another VST plugin that not only allows filtering of MIDI channels, but also remapping. In my case, I needed to re-route MIDI channels 7, 8 and 9 to 1, 2 and 3 respectively because the VST synth plugin Xpand2 only accept messages on channels 1-4. I should mention that I use MIDI channel ranges from my controllers to control cross-talk, as both controllers are mapped to all plugin groups.

The plugin, midiChs_noGUI, is part of the Piz MIDI Utilities package that can be downloaded here:

This can also be done directly in the MIDI in plugin. You can click on the destination channels to modify them.

Agreed, but in my (admittedly complex) setup if I send out channels 1, 2 or 3 from MIDI In, I will get pianos doubled with of the organ, guitar or string patch that I’m trying to map to. My groups are arranged by MIDI channel numbers, as described in my first two posts above.

I don’t understand this. Why?

dhj, here is my updated primary rackspace. I created it in an attempt to minimize the number of rackspaces and plugins that load at startup, since I use the same set of plugins repeatedly in various combinations.

I map both MIDI controllers to every plugin to allow me to play any sound anywhere, full or split. If all of my plugins use channel 1, then I will trigger multiple plugins whenever I have more than one plugin active. For that reason, I grouped my sounds into categories (pianos, organs, etc.) and assign each group their own unique channel range. So I can activate a piano, organ and guitar plugin and assign each sound to either keyboard and have each controller or split trigger exactly one plugin.

Without channel filtering, plugins that do not allow assignment to a specific MIDI channel will respond to messages sent on any channel. This was happening with certain plugin combinations, so I resorted to filtering at the group level (black blocks), which solved the problem.

But, is the connection organisation I proposed to you (see the screenshot of connection view I posted above) much different from what you want to do? If you set a specific channel to one of your keyboard controller or split, it will address the appropriate group (piano, organ, strings…) Then I imagine that you have some buttons to bypass some plugins in each instrument groups.

It seems that you have a kind of unique vision of a very specific connection view. Not sure that it is the best and unique solution to achieve the result you want. You didn’t really explain (or at least I didn’t understand) how you intend to select an instrument group (based on a specific MIDI channel) and a specific instrument in the selected group. How does your rackspace looks like at the end ?