Upon trying to set up Program Change messages for an external keyboard to be triggered when different parts are selected in VST Live (1.1.41 under Mac OS 12), I encountered some issues and wanted to share some of my findings trying to sort it out using a Virtual Midi out → in loop.
My keyboard requires Bank MSB and LSB messages in addition to the PC message to correctly select a patch. For this example let’s say I want to send MSB = 9, LSB = 14 and pick the first patch in that bank.
The first thing I tried is to set it up using the Macro controllers like so:
However, this did not work with my keyboard and using the virtual Midi loop explains why:
Apparently the macro controls get sent after the PC message. In order to select the bank, the correct order would be MSB-LSB-PC!
Next I tried to use the “Layer Controller Map” to send the MSB (CC#0) and LSB (CC#32). Under “Mapped To”, I selected both to be mapped to themselves (for some reason LSB was mapped to MSB by default?) and entered the respective values 9 and 14 under “Send”. This did not work either, and this is what the virtual Midi loop shows:
The first two messages are from the “Layer Controller Map”, then comes the PC and finally the two messages from the macro controls. The “Layer Controller Map” messages are indeed sent in the correct order. However, the values MSB=0 and LSB=32 are sent regardless of the numbers I enter under “Send” in the “Layer Controller Map” menu.
Thus it looks like it’s impossible to get proper program changing since you can either send the correct messages in the wrong order or the wrong messages in the right order…
I can’t know for sure but I suspect that my issues are similar to what is described in this thread: Programe Change doesn't work on Yamaha MODX