Hi!
I’m trying to change the bus layout of a te::ExternalPlugin (a VST3 plugin) that is in a Rack.
Calling te::ExternalPlugin::setBusesLayout(layout) will trigger an assertion with the following comment:
// someone tried to change the layout while the AudioProcessor is running
// call releaseResources first!
Relevant part of the call stack:
juce::VST3PluginInstance::canApplyBusesLayout(const juce::AudioProcessor::BusesLayout & layouts)
juce::AudioProcessor::setBusesLayout(const juce::AudioProcessor::BusesLayout & arr)
tracktion_engine::ExternalPlugin::setBusesLayout(juce::AudioProcessor::BusesLayout layout)
None of the te::ExternalPlugin (or te::Plugin) code seems to call releaseResources on the wrapped AudioProcessor so I’m not sure how this is supposed to work. (A comment in ExternalPlugin::initialise does mention a reason for not calling releaseResources but I’m not sure if this is relevant since this function is not called when trying to change the bus layout).
Is this the correct way to use te::ExternalPlugin::setBusesLayout?
(I’m using tracktion_engine at bf2bf46e1 which is not the latest but the functions mentioned above seem to be the same on the current master as well)
