feat(project): persist bounded per-track effect chains (phase 81)
This commit is contained in:
parent
e9d783146f
commit
7489f86351
15 changed files with 159 additions and 12 deletions
|
|
@ -1895,12 +1895,12 @@ Implemented: sequencer Create menu retains empty/audio/MIDI track creation, WAV
|
|||
Add a bounded C99 per-track insert model with validation, clone/history/duplicate support and backward-compatible project persistence. Loading metadata must not load plugin binaries.
|
||||
|
||||
### Tasks and acceptance criteria
|
||||
- [ ] Implement the described workflow with validated errors and safe ownership.
|
||||
- [ ] Pass relevant core and/or GUI tests.
|
||||
- [ ] Document behavior and limitations; commit this phase separately.
|
||||
- [x] Implement the described workflow with validated errors and safe ownership.
|
||||
- [x] Pass relevant core and/or GUI tests.
|
||||
- [x] Document behavior and limitations; commit this phase separately.
|
||||
|
||||
### Implementation status
|
||||
Planned.
|
||||
Implemented: eight validated metadata-only insert slots per non-bus track, including enabled/wet/output values, format 17 persistence and reads of formats 1–16 with empty chains. Clone/history use copied state; duplicate/move/remove retain track association. Full warning-enabled core suite and dedicated metadata, persistence and invalid-value tests passed. See TRACK_INSERTS.md. Playback integration follows in phase 82.
|
||||
|
||||
---
|
||||
|
||||
|
|
|
|||
16
docs/TRACK_INSERTS.md
Normal file
16
docs/TRACK_INSERTS.md
Normal file
|
|
@ -0,0 +1,16 @@
|
|||
# Track inserts
|
||||
|
||||
The sequencer's **Create** dropdown groups track creation, WAV import and
|
||||
instrument loading. **View → Track inspector** opens the optional inspector;
|
||||
it is hidden when the application starts to leave more room for editing.
|
||||
|
||||
Project format 17 stores up to eight effect slots per track, their order,
|
||||
bypass, wet amount and chain output gain. Formats 1–16 read with empty chains.
|
||||
Metadata load, clone and history never open executable plugin modules. Track
|
||||
move, duplicate and removal retain the association with stable track IDs.
|
||||
Nonempty bus chains are rejected. The model accepts mono effect specifications
|
||||
for LADSPA, VST2, VST3, CLAP and internal effects; this alone does not establish
|
||||
that a third-party binary is compatible with the host.
|
||||
|
||||
The chain API is declared in `xtc_plugin.h`. Setter errors preserve the old
|
||||
chain; plugin identity and layout are checked when preparing playback.
|
||||
Loading…
Add table
Add a link
Reference in a new issue