Phase 31: add CLAP, VST2 and VST3 mono effect hosting
This commit is contained in:
parent
90eac33a71
commit
9e0e4562d7
114 changed files with 10369 additions and 75 deletions
|
|
@ -860,6 +860,45 @@ byte-identical binaries and repacks; and binary manifest/hash/relocation checks.
|
|||
No public release, tag, version bump or system install is performed. Physical
|
||||
qualification and the Phase 29 graph timing alert remain documented limitations.
|
||||
|
||||
## Phase 31 — CLAP, VST2 and VST3 Plugin Loading
|
||||
|
||||
### Goal
|
||||
Load trusted Linux CLAP, VST2 and VST3 audio effects through the graph and GUI,
|
||||
with explicit lifecycle, format compatibility and realtime ownership contracts.
|
||||
|
||||
### Tasks
|
||||
- Review and pin redistributable ABI headers and license notices; keep C99 adapters.
|
||||
- Add explicit format probing and compatible mono float32 effect initialization.
|
||||
- Integrate processing, immutable plans, retirement and failure rollback.
|
||||
- Share module entry lifetimes across overlapping instances; defer main-thread callbacks.
|
||||
- Add format/stable identity metadata with v11 migration and missing-module retention.
|
||||
- Generalize the GUI browser, insertion/replacement and identity presentation.
|
||||
- Test original fixtures for all three ABIs, partial failure cleanup, callback safety,
|
||||
save/reopen, missing dependencies and GUI lifecycle.
|
||||
- Document the initial default-configuration effect subset and unsupported extensions.
|
||||
|
||||
### Acceptance criteria
|
||||
- Compatible fixtures for all three formats render exact expected audio in graphs.
|
||||
- Failed loading/identity/layout/initialization retains the current project/plan.
|
||||
- Loading and reclamation remain off the audio callback, with bounded host processing.
|
||||
- Project files preserve identity and missing references without executing plugins.
|
||||
- Core/GUI builds, regressions, sanitizers and release installation checks pass.
|
||||
|
||||
### Implementation status
|
||||
Implemented in C99 with pinned permissive ABI headers, shared entry lifetimes,
|
||||
CLAP main-thread scheduling, graph/GUI integration and v11 plugin identity.
|
||||
Normal/minimal builds, core and GUI plugin fixtures, live JACK/workflow,
|
||||
ASan/UBSan core and GUI checks, static analysis, staged installation and
|
||||
source/binary release checks pass. Tests include activation/start/process and
|
||||
restart errors, rejected layouts/identities, missing modules and retirement.
|
||||
GUI leak checking retains only the existing Fontconfig suppression; core checks
|
||||
use none. Only original ABI fixtures are qualified; arbitrary third-party plugins
|
||||
and physical audio remain unverified. See PLUGIN_HOSTING.md and decision 0010.
|
||||
|
||||
The initial subset excludes instruments/events, editable modern parameters,
|
||||
opaque state/custom editors, true stereo/multichannel and latency compensation.
|
||||
These require separate future work; they are not claimed as implemented by loading.
|
||||
|
||||
---
|
||||
|
||||
## Recommended Execution Order
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue