My VST3 plugin has 16 units, one for each of the 16 MIDI channels. The number of patches can differ from unit to unit. Cubase gets this number through a call to getProgramListInfo where the number is set using programCount in the ProgramListInfo structure. This works perfectly when the plugin is first instantiated, but the user may later change the list for any of the MIDI channels. In this case my plugin calls - at least - RestartComponent(kParamValuesChanged). This causes Cubase to call the getProgramListInfo function again and the new programCount numbers are sent back. However, in Inspector the length of the displayed list doesn’t seem to change, causing lots of issues. How can I force Cubase to update the length in the Inspector? I have also tried to call notifyUnitSelection and notifyProgramListChange, but nothing seems to work. I have Cubase Elements 13, but this seems to be an issue also in Cubase 12.
Hi @krundt Sorry for the late answer. I was able to reproduce the behavior that you described with an example-plugin that is part of VST-SDK: “multiple_programchanges“. After having analysed the code within this plugin and within Cubase, I noticed that the plugin didn’t call “notifyProgramListChange”. After inserting this call (see screenshot) the update of the preset-choice-popup in the Inspector in Cubase 15 was updated as it should. It showed the correct number of presets. Looking into the change-log of the implementation of “notifyProgramListChange“ in Cubase revealed, that it hasn’t been changed since 2019 during Cubase 10 development. Therefore I believe that this should work in Cubase (Elements) 12 & 13 as well. I hope this helps. Thanks.
