feat: collect portable project media with transactional cleanup and qualify composition workflows
This commit is contained in:
parent
d676d74a11
commit
b0cfa79131
15 changed files with 225 additions and 10 deletions
|
|
@ -42,3 +42,7 @@ Edit/MIDI tools/Generate arpeggio replaces source notes with a written pattern.
|
|||
## Phase 67 — Audio Peak Normalization
|
||||
|
||||
Edit/Audio tools/Normalize source peak accepts a target from -60 to 0 dBFS. The C API accepts a linear target above 0 and at most 1. Analysis uses the audible native-rate source slice and the same mono downmix as playback, before fades or mixer controls. It replaces clip gain without writing WAV data. Silence, missing/invalid media, MIDI selections or required gain above 4 reject the entire batch. This is sample-peak normalization, not true-peak limiting or LUFS loudness normalization. Analysis runs synchronously on the control thread.
|
||||
|
||||
## Phase 68 — Portable Project Collection
|
||||
|
||||
File/Collect project media... requires a new absolute folder. The original document and files remain unchanged; open project.xtc inside the new folder to use the copy. Referenced audio and track/graph sampler WAVs are deduplicated and copied byte-for-byte, with relative references. Limits are 128 distinct assets, 256 MiB per file, 1 GiB total and a canonical folder path shorter than 480 bytes. Existing destinations, missing media, nonregular files and native graph nodes reject. External plugin binaries/state are not collected; plugins must remain installed. Invalid WAV data is copied rather than repaired. The folder is visible during synchronous collection; failures remove owned outputs, and the project file is saved last.
|
||||
|
|
|
|||
|
|
@ -1,6 +1,7 @@
|
|||
# Modern editing workflows
|
||||
|
||||
These control-thread edits preserve project format 15. Session selections,
|
||||
Phases 47–57 introduced these control-thread edits without changing format 15.
|
||||
The current writer uses format 16 for arrangement markers and still reads older projects. Session selections,
|
||||
clipboard and comparison snapshots are not saved in projects. Audio callbacks
|
||||
continue to consume prepared plans; edits use the existing stop/history workflow.
|
||||
|
||||
|
|
|
|||
|
|
@ -1647,12 +1647,31 @@ Implemented: native-rate audible-slice sample-peak analysis adjusts nondestructi
|
|||
Collect referenced audio and sampler media into a new self-contained project folder, deduplicate references, preserve original files and reject existing destinations or unsupported references safely.
|
||||
|
||||
### Tasks and acceptance criteria
|
||||
- [ ] Implement bounded C99 model/control APIs and accessible GUI commands.
|
||||
- [ ] Preserve transactional errors, history, compatibility and callback safety.
|
||||
- [ ] Verify the feature with automated model/GUI tests and document limitations.
|
||||
- [x] Implement bounded C99 model/control APIs and accessible GUI commands.
|
||||
- [x] Preserve transactional errors, history, compatibility and callback safety.
|
||||
- [x] Verify the feature with automated model/GUI tests and document limitations.
|
||||
|
||||
### Implementation status
|
||||
Planned.
|
||||
Implemented: new-folder media collection deduplicates canonical audio and sampler references, copies bounded regular files, writes relative project references last and cleans owned outputs on failure. Relocation after deleting originals, rendered sample content, oversized/FIFO cleanup, existing destinations, allocation rollback and GUI collection pass. Integrated validation below covers all eleven phases.
|
||||
|
||||
|
||||
### Integrated validation for Phases 58–68
|
||||
|
||||
All eleven numbered phases have separate implementation commits and passing
|
||||
warning-enabled model and focused GUI checks. Final integration passed the full
|
||||
core/offline suite, allocation-failure rollback and ID preservation, complete GUI
|
||||
and LADSPA/CLAP/VST2/VST3 effect/instrument fixture matrix, and software JACK
|
||||
start/stop/reconnect/record/active-close checks. ASan/UBSan core and full GUI runs
|
||||
passed with only the existing system Fontconfig leak suppression. Clang analysis
|
||||
passed for every core source; both staged installation layouts and C/C++
|
||||
pkg-config consumers passed. Collection additionally covers relocation after
|
||||
source deletion, copied render content, deduplication and partial-output cleanup.
|
||||
|
||||
The current writer uses project format 16 and reads versions 1–15. These phases
|
||||
add no dependencies or callback I/O/allocation. See
|
||||
[COMPOSITION_WORKFLOWS.md](COMPOSITION_WORKFLOWS.md) for commands and bounded
|
||||
behavior. Human listening, physical hardware, arbitrary third-party plugins and
|
||||
feature parity with commercial DAWs remain unqualified.
|
||||
|
||||
---
|
||||
|
||||
|
|
|
|||
|
|
@ -109,7 +109,7 @@ See [MIDI.md](MIDI.md#phase-21-composition-commands) for shortcuts, timing and l
|
|||
## Audio clip tools
|
||||
|
||||
Select an audio clip, click the ruler at the desired cut while stopped, then
|
||||
choose Edit / Split audio at cursor (S with timeline focus). Ctrl+D duplicates;
|
||||
choose Edit / Split clip at cursor (S with timeline focus). Ctrl+D duplicates;
|
||||
Delete removes the clip reference. Drag the body to move and edges to trim.
|
||||
Edit / Audio clip gain and fades (A) sets linear gain and fade durations in ticks.
|
||||
All are undoable and preserve the WAV file. Waveforms show cached raw source
|
||||
|
|
@ -216,3 +216,5 @@ Phases 47–57 add additive clip selection, atomic group commands, phrase clipbo
|
|||
and repeat, alignment/slip tools, MIDI swing/gate/legato/scale/velocity transforms,
|
||||
batch audio fades and static mixer A/B recall. See
|
||||
[MODERN_EDITING.md](MODERN_EDITING.md) for commands, scope and limitations.
|
||||
|
||||
See [arrangement and composition workflows](COMPOSITION_WORKFLOWS.md) for markers, MIDI composition, normalization and portable media collection.
|
||||
|
|
|
|||
|
|
@ -235,3 +235,7 @@ Phases 47–57 add additive clip selection, atomic group commands, phrase clipbo
|
|||
and repeat, alignment/slip tools, MIDI swing/gate/legato/scale/velocity transforms,
|
||||
batch audio fades and static mixer A/B recall. See
|
||||
[MODERN_EDITING.md](MODERN_EDITING.md) for commands, scope and limitations.
|
||||
|
||||
Phases 58–68 add arrangement markers and sections, ripple edits, complete track
|
||||
duplication, MIDI splitting/consolidation and composition tools, peak normalization
|
||||
and portable media collection. See [COMPOSITION_WORKFLOWS.md](COMPOSITION_WORKFLOWS.md).
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue