add VST3 program list data - #13
Conversation
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 9e7a2a2820
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| const auto applyParameters = | ||
| pending == RuntimeProgramBank::kNoPendingProgram || | ||
| RuntimeProgramBank::appliesParameters(pending); | ||
| applyProgram(*bank, selected, applyParameters); |
There was a problem hiding this comment.
Preserve edited parameters during processing reconfiguration
When a host calls setupProcessing again after a block-size, sample-rate, or process-mode change, there is normally no pending program, so this condition sets applyParameters to true and reloads the selected program's factory snapshot. Any parameter edits or automation values accumulated since the program was selected are therefore overwritten merely by reconfiguring audio processing; distinguish initial setup from reconfiguration and reapply only the payload on later setup calls.
Useful? React with 👍 / 👎.
Summary
IUnitInfoandIProgramListDataacross the controller and processorWhy
Singularity previously exposed ordinary processor parameter state, but did not provide a complete framework API for VST3 built-in program lists or program-list data. Plug-in developers now have a format-neutral model for built-in programs while the VST3 adapter owns the VST3-specific mapping and transport.
The processor state handoff also needed explicit lifecycle cleanup so a state queued immediately before termination could not survive a later reinitialization.
Developer impact
Developers can define stable
ProgramCollectionandBuiltInProgramentries, optionally attach opaque payload bytes, and map collections to VST3 units. Host-managed.vstpresetfiles remain host/installer concerns; Singularity does not generate preset files.Plug-ins that do not define VST3 program-list bindings do not expose
IProgramListData.Validation
git diff --check