phase information removal.
This commit is contained in:
parent
a869f38a76
commit
dd32143bf8
45 changed files with 325 additions and 330 deletions
|
|
@ -1,6 +1,6 @@
|
|||
# External plugin hosting evaluation
|
||||
|
||||
Historical Phase 9 decision: defer external hosting. The native source API is useful
|
||||
The original decision deferred external hosting. The native source API is useful
|
||||
for proving processor contracts without adding an SDK or scanning/loading code.
|
||||
|
||||
| Candidate | Benefits | Work required before adoption |
|
||||
|
|
@ -9,7 +9,7 @@ for proving processor contracts without adding an SDK or scanning/loading code.
|
|||
| 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
|
||||
No candidate was linked, scanned or loaded. 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.
|
||||
|
|
@ -19,11 +19,11 @@ plugin recovery policy, preparation failure/partial cleanup tests, bounded event
|
|||
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 remain a gap; Phase 32 adds track instrument selection.
|
||||
code safe. Event graph ports remain a gap; track instrument selection is described below.
|
||||
Choose one format with concrete user needs after those contracts are specified;
|
||||
do not introduce a general multi-format framework now. See decision 0008.
|
||||
|
||||
## Phase 15 implementation (supersedes the Phase 9 deferral)
|
||||
## LADSPA implementation (supersedes the earlier deferral)
|
||||
|
||||
Decision [0009](decisions/0009-parameter-processors-and-ladspa.md) selects a bounded
|
||||
LADSPA 1.1 host. `xtc_plugin.h` is the C API; no C++ engine or FLTK type is needed.
|
||||
|
|
@ -108,12 +108,12 @@ Tested packages: ladspa 1.17-7 and swh-plugins 0.4.17-7. These zero-latency
|
|||
processors define the initial compatible set; other plugins remain unqualified.
|
||||
Physical listening and plugin CPU/endurance qualification remain pending.
|
||||
|
||||
## Phase 25: discovery, editing and graph lifecycle
|
||||
## Discovery, editing and graph lifecycle
|
||||
|
||||
Discovery remains explicit-file only, bounded to 1024 descriptor indices; no
|
||||
recursive scan, plugin database or new dependency is introduced. Unsupported
|
||||
layouts are skipped with counts; source/effect roles describe audio ports, not
|
||||
MIDI instrument capabilities. Phase 32 adds modern track instruments (see below). LADSPA sources can be identified, edited, replaced and removed in
|
||||
MIDI instrument capabilities. Modern track instruments are described below. LADSPA sources can be identified, edited, replaced and removed in
|
||||
the graph but cannot receive MIDI events.
|
||||
|
||||
**Edit → Insert LADSPA on selected wire** replaces one existing connection with
|
||||
|
|
@ -164,7 +164,7 @@ No embedded third-party editor UI is supported.
|
|||
LADSPA 1.1 descriptor identity is module path + index + label + unique ID, with
|
||||
exact supported port/control layout verified on restore. A unique ID is not a
|
||||
binary version/hash guarantee. Parameter values and bounded automation persist
|
||||
in existing project v9 records; this phase adds no file format change. Transient
|
||||
in existing project v9 records; this work adds no file format change. Transient
|
||||
history/tails and opaque state remain unsupported. Native processor ABI 2 and
|
||||
its exact `struct_size` contract are unchanged; it remains parameter-only state.
|
||||
Consumers rebuild against public headers; the new copied details API adds no
|
||||
|
|
@ -179,7 +179,7 @@ A LADSPA `run` callback has no error return; finite-sample sanitation does not
|
|||
contain crashes, hangs, memory corruption or prohibited work inside a plugin.
|
||||
Only trusted in-process plugins are supported. See RECOVERY.md.
|
||||
|
||||
### Phase 25 verification
|
||||
### Verification
|
||||
|
||||
Fixture tests cover copied identity/hints, integer and toggle defaults and range
|
||||
rejection, logarithmic/sample-rate hints, scaled-range overflow rejection, reset
|
||||
|
|
@ -193,7 +193,7 @@ cover process-error silence/reset. The separately installed amp/inverter/sine
|
|||
modules remain the qualified LADSPA set. Human listening, arbitrary third-party
|
||||
editors/plugins and extended realtime endurance remain unverified.
|
||||
|
||||
## Phase 26 parameter targets
|
||||
## Parameter targets
|
||||
|
||||
`xtc_control.h` supplies common stable owner/parameter IDs and control-thread
|
||||
metadata/edit APIs for track/bus gain/pan and LADSPA input ports. The GUI's plugin
|
||||
|
|
@ -204,7 +204,7 @@ not override existing lanes. Live CCs do not map to plugins; missing targets or
|
|||
modules fail without installing partial state. See CONTROL.md for timing,
|
||||
precedence, reset and backward-jump behavior.
|
||||
|
||||
## Phase 31: CLAP, VST2 and VST3 effect loaders
|
||||
## CLAP, VST2 and VST3 effect loaders
|
||||
|
||||
**File → Load plugin** now detects LADSPA, CLAP, VST2 and VST3 entry points in an
|
||||
explicit trusted Linux module. **Insert plugin on selected wire** and **Replace
|
||||
|
|
@ -223,7 +223,7 @@ prefers CLAP, then VST2, then VST3, otherwise LADSPA; the C API also provides
|
|||
|
||||
The modern subset is **one mono audio input and one mono output, float32, default
|
||||
configuration, zero reported latency**. Stereo graph playback uses independent
|
||||
instances. For the Phase 31 effect subset, true stereo/multichannel/sidechain buses, instruments, MIDI/events,
|
||||
instances. For the modern effect subset, true stereo/multichannel/sidechain buses, instruments, MIDI/events,
|
||||
custom editors, parameter changes/automation, programs/presets, opaque state,
|
||||
transport/time information, workers and latency compensation are not implemented
|
||||
for these three formats. Modern metadata with controls/automation is rejected,
|
||||
|
|
@ -257,7 +257,7 @@ format, missing modules, v11 save/reopen and GUI add/browser/undo/reopen. Host
|
|||
allocation/loading/unloading guards remain active while rendering. This evidence
|
||||
qualifies the subset above, not arbitrary external plugins or physical audio.
|
||||
|
||||
## Phase 32 instrument support
|
||||
## Instrument support
|
||||
|
||||
MIDI tracks can bind CLAP, VST2 and VST3 instruments. In the Track menu, select
|
||||
**Load instrument plugin** for the selected sequencer track; **Use built-in
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue