I’m trying to change the bus layout of a
te::ExternalPlugin (a VST3 plugin) that is in a Rack.
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::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
(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)