Hello!
I am a developer of Basehead.
I am developing a vst3 host using Bass.dll
But I met a problem in automation for some vst3 plugins.
-
I loaded vst3 plugin.
this_->module = VST3::Hosting::Module::create(path, error);
-
I got plugProvider like this.
auto factory = this_->module->getFactory();
if (auto factoryHostContext = nullptr)
factory.setHostContext(factoryHostContext);
for (auto& classInfo : factory.classInfos())
{
if (classInfo.category() == kVstAudioEffectClass)
{
this_->plugProvider = owned(new PlugProvider(factory, classInfo, true));
if (this_->plugProvider->initialize() == false)
this_->plugProvider = nullptr;
break;
}
}
- I opened editor.
auto editController = this_->plugProvider->getController();
createViewAndShow (this_);
- audio host part
...
setSampleRate(sr);
setBlockSize(nFrames);
IComponent* component = this_->plugProvider->getComponent();
FUnknownPtr<IAudioProcessor> processor = component;
if (!processor || !this_->isProcessing)
goto L_EXIT;
preprocess(this_->buffers, this_->processData);
if (processor->process(*(this_->processData)) != kResultOk)
goto L_EXIT;
L_EXIT:
postprocess(this_->buffers, this_->processData);
...
the problem is that turning knobs does not affect the audio for some vst plugins.
this code works for many vst3 plugins such as ValhallaFreq.vst3 and ValhallaVintage.vst3
but does not work for some plugins like kHs Phaser.vst3 or kHs Delay.vst3
I can only hear the audio that the default preset of the vst plugin is applied.
So I added this manually in code
editController->setParamNormalized(index, 1.0);
but the knob state is changed in UI, but the audio does not change.
I confirmed that when turning knobs, it calls beginEdit() and performEdit() correctly.
could you let me know what the reason is?