I think you should skip trying to switch programs in any VSTi, but instead making your life easy and simply using multiple instances. This often also is the better approach for mixing context. Since Renoise can disable unused plugins on-the-fly, you also would not have a drawback in performance.
Usually you would switch the program in a VSTi using the instr. midi control device. In there, you can switch a parameter to “Prg” and then automate that. Bank switching was possible somehow, too, using a midi cc parameter or so. But again, save your time, don’t do this. You can even use multiple VSTis in the same track if you want to.
As far as I know, prg switching only works with VSTis which are providing a list of standard vst presets in a midi standard format with 128 slots per bank. Zebra 2 doesn’t do this. Maybe Zebra has some other way to do a prg change. Though this also might result in clicking or unpredicable delays or cpu spikes, since Zebra then will load a new preset, initalize the audio buffers, etc.
I do not claim to have an exhaustive experience. but some tools have shown themselves quite well in working with this parameter. here is a small example.
Since MIDI can only transmit 128 different program values, some Plugin instruments implement their own customised method of changing programs/presets. This means you have to use the Plugin interface to make those changes; they won’t respond to MIDI at all.
u-he plugins for midi have a special midi catalogizer. which you can fill up. this is how native -instruments work to. the problem is that this function does not work with vst3
thanks for all the replies, it’s working with the VST2 version (thanks Jalex) following the method Jalex shared (entering using the intr midi control, not the manual entered messages). i’ll also follow ffx’s advice that this shouldn’t be default, i.e. separate out where it makes sense.