1.7 KiB
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.