I’ve been using HALion since version 5 (Using v6 now), and it CAN manage a table of up to 128 programs/patches that can be called up via MIDI PC events. You build your program table with any stuff you want to call up via PC in the first 128 slots and save that as multi-program. Your table can have more than 128 programs, but as far as I know it’s just the first 128 that will respond to PC changes (I don’t think bank messages are supported to do more than 128, perhaps multiple banks would be a good feature request). Note, you should subtract one to get the right program called…I.E. A PC 0 event will call up Program 1 from your table, PC 2 will call program 1, etc.
In HALion 6, the program table works independently for each MIDI channel…just like any other GM instrument.
There is also a General MIDI I multi-program included with HALion. I typically start with that and simply drag my own programs into the tree to replace slots I want my own (or different) programs in. Of course you can start with a totally empty program tree and build it any way you like. Just be sure in the “Options” tab, you have HALion set to receive Program Changes.
Larger programs/patches that need to be called up instantly via PC can also be set to ‘preload’ into memory, though for constantly swapping between sounds with ‘really large’ sample sets, it may be more efficient on the system (uses more memory, but less CPU or D2D activity) to channel bounce, or build key-switches into your program(s) instead.
I.E. Here is one where I started with the GM set, and replaced a bunch of stuff with programs from the HALion Symphonic Orchestra library:
Since GM I expects a drum kit on Channel 10, I just have a default one already loaded with the multi-program. If I want a different one I just drag it to channel 10 (or 11 in the case of multi kit GM II files) from my program tree. I also changed up my effects and audio routing for the multi-program so various families of instruments get their own outputs and internal HALion effect chains.
So, if 128 slots are enough for a given project/gig…HALion has you covered.
HALion 6 is a very deep sound design platform. It integrates into Cubase exceptionally well. The UI is very unique and allows very good user configuration in terms of what you want displayed when, where, and how. The included content is subjective (great in my opinion) so it’s best to grab demos and try it yourself if included or available content packs are a major part of your decision making process. As for making your own content, H6 hangs in there with the best of them…it’s a great engine.
In cases where you want to mix and match an assortment of plugins (which may even be totally dumb to live program changes) into one aggregated super plugin, and get all sorts of options to change stuff up with PC, CC, velocity curves, mapping, etc…you might have a look at something like Bidule, Vienna Ensemble Pro, VIP etc.
Bidule in rewire mode (CuBase supports this) is also a solid method for bridging your old 32but stuff to work with a 64bit host (or vice verse). So, check it out. You could keep using your 32bit stuff with 64bit hosts that can be a Rewire Master. If you have a DAW/Host that does not have Rewire Master support, you can add it to most hosts with VST Plugin (VST Plugin was designed for Reason, but I’ve found it works well in everything I’ve tried that I wanted to become a Rewire “Master”…Dorico, Finale and Sibelius, and more).
I’ve been using Bidule for a while now, and it’s great for mixing and mashing plugins for ultra creative sound design. I.E. I can easily blend ARIA, HALion, SONiVOX, and others into one seamless plugin (or a rewire client). As a quick example here is a Bidule where I am actually mixing/blending 8 totally different VST/i plugins into a single instrument. Portato comes from Sforzando, Sustain 1 comes from HALion, Slow Harmonics from NI Player, Sustain 2 from SONiVOX Film Scoring companion, etc. All of this runs in a single VSTi slot in the Cubase instrument rack.
I can easily automate and swap/merge/blend/isolate the sounds via key switches, program changes, keyboard mapping, velocity, tempo, and more. I could also ‘round robin’ among sets of sustains coming from a number of independent plugins, and more. I can call up different routings via PC or CC events. With the registered VST/i versions I can use it as a plugin chainer when I run out of slots, or want to side chain things that do not have native side chaining abilities, etc. I can use it to force VSTi plugins to work in VST slots, and vice verse. I also often use Bidule, rtpMIDI; plus free utilities, reaStream to host sounds on different computers (make use of all the door stop computers in the house to run some synths/samplers). Low level MIDI and audio processing possibilities are pretty intense. It also provides a layer of OSC based remote support if you’re in need of that.