Halion and Groove Agent - automated program changes?

Hi all,

Am starting to use Cubase 8 in a live environment, with multiple songs all loaded in to a single project and using the arranger track to split the songs out in to sections, which works great.

However, as I have multiple sounds that I want to switch between depending on the song, I want to be able to send Midi Program Changes (or the equivalent) to Halion and Groove Agent so I can change the sound on a particular midi channel, rather than have loads and loads of different channels and instances open.

Is it possible? I see within Halion there is an option to enable general midi but then I can only select the GM banks and not the full suite of sounds. Within Groove Agent I cannot find any way of sending program changes, or a list of what program number would be associated to that program change event.

If this isn’t possible, is there a neater way than having to create, for example, 30 instances of Groove Agent, all loaded when I open the project, with the different drum banks loaded? Seems an awful lot of overhead sitting in the back ground as the instance of Groove Agent would only be used for one song, but loaded and running all the time.

Thanks for any help or advice.


It depends… If you are really talking about HALion (5), not about HALion Sonic SE, then it’s possible. In HALion 5, you can create your own set of 128 Programs, and then just call it by using common Program Change MIDI message. Just frag-and-drop wanted sound to the relevant Program. The Program tab is in the right-bottom corner in the default HALion 5 windows layout.

In HALion Sonic SE, it’s possible only, if you use the GM Mode, as you mentioned. But then, you can use GM sounds only.

You don’t need 30 HALion Sonic SE instances. You can use 1 instance for 16 sounds, as the multi-timbral Virtual Instrument. Then, you can controls via MIDI Channel, which sound do you want to use currently.

Hope, this helps.

Perfect thank you - I have ordered Halion Sonic 2, (Not Halion 5), do you know if that has the feature I need? I couldn’t see it listed in the comparison chart so unsure what it’s called. I will upgrade to the full Halion 5 if needed to get that functionality as it’s the key bit that is missing for me.

Do you, or anybody else, know about the question for Groove Agent too ? Im using just the inbuilt SE version but happy to upgrade to get that functionality.


In HALion Sonic, it’s in-between. On the Options page, there is also Program Change part, where you can select:

  • Off
  • GM
  • Multi Mode.

The Multimode means, you can switch between Multi-sounds, you prepare, by using Program Change MIDI CC. You can use up to 128 Multis (all Program Changes) and every single Multi can contain up to 16 sounds. These sounds could be as layers (on one MIDI Channel), or as separated sounds (every single sound is controlled from different MIDI Channel. So you could have up to 2.048 different sounds.

I haven’t found any “Program Change” in the Groove Agent 4 (or SE 4) manual. There is an option to load Previous/Next Program (i.e. sound), and you can use your own KeyCommand. So if you will create perfectly named sounds (I would recommend to use numbers) in the wanted order, then you could switch these sounds by using the KeyCommand. These KeyCommands are in both Groove Agent 4 and Groove Agent SE 4. You can find it under the OPTIONS page > Global part > Key Commands button. The KeyCommand, I’m talking about, is under the Global folder.

1 Like

You’re a star - thank you Martin - really appreciate you taking the time to reply.

If you do happen to have an instrument/plugin that can NOT accept program changes, nor allows you to work in your own ‘key or CC message switches’, then here’s another possible solution.

You can have more than one instance of most plugins. Load them all up, and simply point your MIDI tracks to the proper instance and channel. Unless you’re out of memory and the plugin(s) do not support d2d streaming, this should work just fine.

If your project/performance grows really large and starts eating at your resources in a noticeable way…
I’m pretty sure there are ways to freeze instruments that aren’t in use for your current song, and get some memory back if you really need that, and you can build keyboard macros (and even direct midi remote events to call them up). You can also use the project logic editor to create ‘batch like’ mini scripts to automate lots of changes to instruments in a click or two.

Note, it’s also possible to have more than one project open at once (I.E. one per set, or one per song, etc.) and hot swap among them with key combos or midi remote events. In the long run that could make changing up your set order easier to manage, and highly welcome in more ‘improvisational’ settings where set order can change in an instant on you.

For live performing with CuBase as a host, I highly recommend

  1. Use the manual and get familiar with how you make your own macros, screen/display sets, and key combos.
  2. Reading up in the manual on all of the remote control capabilities CuBase has to offer.
  3. Read up on all of the logical editors, and MIDI track inserts/sends, as well as the global and local transformers.

Thanks Brian - in particular about the manual. I am going to spend some time reading the manual and understand all of those items correctly and in detail.