Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

VST3: setting "Curent Program" does not work if DPF_VST3_USES_SEPARATE_CONTROLLER is set #490

Open
atsushieno opened this issue Feb 2, 2025 · 2 comments

Comments

@atsushieno
Copy link

I'm trying to build a proof-of-concept General MIDI sampler plugin using DPF with WebView UI and TinySoundFont. I'm hitting various issues so far, and would like to fix one by one.

In my plugin I have 128 presets which seems correctly initialized at initProgramName(). They are exposed as presets, and on VST3 they are exposed as parameter # 0. But changing the parameter somehow does not affect the DSP if DPF_VST3_USES_SEPARATE_CONTROLLER is set.

If I set DISTRHO_PLUGIN_WANT_DIRECT_ACCESS=1 this problem goes away. But I do not want to do this (especially because it affects LV2 build as well). Also, other parameters work fine.

I suspect some code in or around PluginVST3::setParameterNormalized() but not sure.

My repro project is at https://github.com/atsushieno/usf2plugin (using DPF @ 576b507).

@falkTX
Copy link
Contributor

falkTX commented Feb 2, 2025

When using separate controller the host is supposed to notify both the "processor" through input events and the edit-controller too.
Can you verify that this is indeed happening?

I have seen a few VST3 hosts misbehaving and assuming these 2 are always connected and the same..

@atsushieno
Copy link
Author

atsushieno commented Feb 2, 2025

Oh, I forgot to write that I was using JUCE AudioPluginHost to examine the plugin behavior.

I'm not sure if what you described on the requirement is true or not (I cannot recall exact VST3 specification document on that), but since setting parameters in general works other than "Current Program" I assume it is achieved.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants