I’m trying to group parameters in a VST3 plugin - but for some reason, all parameters show up in the root level in Cubase 8.5 and the Steinberg VST3PluginTestHost. What am I doing wrong?
void MyPlugin::setupParameters()
{
AudioProcessorValueTreeState::ParameterLayout layout;
auto globalGroup = std::make_unique<AudioProcessorParameterGroup>("global", "Global", " | ");
globalGroup->addChild(std::make_unique<AudioParameterFloat>( ... ));
globalGroup->addChild(std::make_unique<AudioParameterFloat>( ... ));
layout.add(std::move(globalGroup));
for (int i = 0; i < 4; i++)
setupGroups(i, layout);
m_state = std::make_unique<AudioProcessorValueTreeState>(*this, nullptr, "PARAMETERS", std::move(layout));
}
void MyPlugin::setupGroups(int index, AudioProcessorValueTreeState::ParameterLayout& layout)
{
auto group = std::make_unique<AudioProcessorParameterGroup>("GroupID" + String(index), "Group " + String(index), " | ");
group->addChild(std::make_unique<AudioParameterFloat>( ... ));
group->addChild(std::make_unique<AudioParameterFloat>( ... ));
layout.add(std::move(group));
}