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

Implement VST 3.1.0 Dirty State Support in PlugData #2025

Open
berkut0 opened this issue Dec 19, 2024 · 4 comments
Open

Implement VST 3.1.0 Dirty State Support in PlugData #2025

berkut0 opened this issue Dec 19, 2024 · 4 comments

Comments

@berkut0
Copy link

berkut0 commented Dec 19, 2024

Problem:

PlugData as a VST3 plugin does not fully utilize the Dirty State, Open Editor Request, and UI Group Editing Support features introduced in VST 3.1.0. This limitation prevents hosts from reliably tracking state changes, which can lead to inconsistencies and loss of unsaved changes. Implementing these features would allow better synchronization of states between PlugData and its host.

Motivation and Context:

The recent addition of VST3 plugin support in the visual programming environment VVVV has highlighted the importance of robust state management. Currently:

Hosts cannot detect internal state changes within PlugData.
This results in risks such as unsaved modifications and breaks the user expectation of seamless integration and state preservation.

For detailed discussion, see: "Is it possible to save and use state of VST3 nodes?"

Enhancing PlugData with proper support for VST 3.1.0 state management features would resolve these issues and greatly improve its usability in environments like VVVV.

@dromer
Copy link
Contributor

dromer commented Dec 19, 2024

plugdata currently uses a fork of JUCE7 plugin framework.
All VST3 support goes through this JUCE library.

@dromer
Copy link
Contributor

dromer commented Dec 19, 2024

@berkut0
Copy link
Author

berkut0 commented Dec 20, 2024

@dromer Thanks for taking the time to look into this! From what the link says, it looks like there is support in the framework itself, which is great!

I haven't really looked into the issue yet. But it seems that in too few cases Plugdata notifies the host of changes. So support is there, but it's not complete.

@timothyschoen
Copy link
Collaborator

So it seems like I need to do:

processor.updateHostDisplay(AudioProcessorListener::ChangeDetails {}.withNonParameterStateChanged(true));

Whenever the patch changes? This is doable, though I am afraid this may cause audio clicks. I'll test it and let you know!

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

3 participants