24 lines
1.7 KiB
Markdown
24 lines
1.7 KiB
Markdown
|
|
# External plugin hosting evaluation
|
||
|
|
|
||
|
|
Decision: defer external hosting after Phase 9. The native source API is useful
|
||
|
|
for proving processor contracts without adding an SDK or scanning/loading code.
|
||
|
|
|
||
|
|
| Candidate | Benefits | Work required before adoption |
|
||
|
|
| --- | --- | --- |
|
||
|
|
| LV2 | Open specifications, established Linux hosts/plugins | RDF discovery and feature negotiation, URIDs, state, UI lifetime, worker requests and event mapping; likely additional discovery dependency |
|
||
|
|
| CLAP | C ABI, explicit lifecycle and event model | Extension negotiation, parameter/state persistence, host callbacks, main/audio-thread scheduling and UI integration |
|
||
|
|
| VST3 | Broad plugin availability | SDK/license review for the selected SDK release, C++ adapter outside the C core, component/controller and editor lifecycle, state and event translation |
|
||
|
|
|
||
|
|
No candidate was linked, scanned or loaded in this phase. API/SDK and plugin
|
||
|
|
licenses must be checked at the revision actually adopted; they are separate
|
||
|
|
from xtc's MIT license. Supporting a format does not grant redistribution rights
|
||
|
|
to individual plugins. Do not search user plugin directories from the callback.
|
||
|
|
|
||
|
|
Before implementation, require versioned module identity and state, a missing-
|
||
|
|
plugin recovery policy, preparation failure/partial cleanup tests, bounded events
|
||
|
|
and parameter publication, latency/tail handling, callback-safe unload after
|
||
|
|
retirement, a GUI/main-thread boundary and an explicit crash-containment decision.
|
||
|
|
Native ABI tests cover some ownership mechanics but do not prove third-party
|
||
|
|
code safe. Event graph ports and custom-instrument GUI selection remain gaps.
|
||
|
|
Choose one format with concrete user needs after those contracts are specified;
|
||
|
|
do not introduce a general multi-format framework now. See decision 0008.
|