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.
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.
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.
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!!
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.
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:
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.
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 ?
I have a similar situation though not as complex… I have a controller (NumaO2) that has fixed midi outputs (1,2,3) and I want to be able to change those channel assignments with the midi filter. I can change and remap all the CC messages with the midi filter but not the channel.
Third party plugins aside, can I do this in GP without creating multiple instances of the Numa02 mapped differently?