feat: detect and slice audio attacks atomically and qualify sample editor workflows

This commit is contained in:
Johannes Findeisen 2026-11-06 01:16:39 +01:00
commit 9e380d4dd0
20 changed files with 257 additions and 22 deletions

View file

@ -1837,12 +1837,40 @@ Implemented: deterministic nearest zero-sample/sign-crossing boundary search wit
Detect threshold attacks with a refractory gap, inspect their source positions, and split the original clip at representable interior source transients in one undoable transactional operation. Qualify integrated rollback, persistence, rendering and GUI behavior.
### Tasks and acceptance criteria
- [ ] Implement bounded C99 analysis/processing and accessible FLTK controls.
- [ ] Preserve source files, atomic error handling, history and callback safety.
- [ ] Pass meaningful core and GUI checks; document exact behavior and limits.
- [x] Implement bounded C99 analysis/processing and accessible FLTK controls.
- [x] Preserve source files, atomic error handling, history and callback safety.
- [x] Pass meaningful core and GUI checks; document exact behavior and limits.
### Implementation status
Planned.
Implemented: hysteretic amplitude attack detection with refractory gaps, source-frame markers and transactional nearest-tick slicing with one project undo step. Capacity failures preserve clips/IDs; core render comparison and persistence reload, GUI slicing/undo, allocation rollback, sanitizer, static-analysis, plugin/JACK and installation checks pass. See integrated validation and AUDIO_EDITOR.md for explicit mono, timing and detector limits.
### Integrated validation for Phases 69–79
Each of the eleven phases has its own tested implementation commit. The final
warning-enabled core/offline suite and focused sample-editor GUI checks cover
native frame selection, trim rounding, local processing/undo, selection export,
failed/successful copy adoption, project undo and slicing. The native-rate GUI
case trims through the actual editor callback using the fixture's 22.05 kHz rate.
Core regressions verify exact range samples, curve endpoints, residual DC,
silence/zero-crossing ties, threshold hysteresis, attack capacity, partial-slice
capacity rollback/ID preservation, an aligned no-fade render comparison and
saved-slice reload. Oversized source, overflow and gain-cap failures are explicit.
Allocation-failure injection covers every processing operation, source loading,
WAV save cleanup and slicing preparation. Full GUI and LADSPA/CLAP/VST2/VST3
effect/instrument fixtures, software JACK lifecycle, ASan/UBSan core and focused/
full GUI, Clang analysis and both staged install layouts passed. Sanitizer GUI
runs retain only the existing system Fontconfig leak suppression. The public
sample API, docs and two real editor captures are included in the repository.
No dependency or project-format migration was added (writer 16, reads 1–16).
All sample I/O, allocation and processing run on the control thread. The editor
uses the existing mono downmix, bounded snapshots and one local undo/redo step;
project trims/slices remain musical-tick based. Long-file streaming, stereo
source editing, audition/scrubbing, time stretching, spectral processing,
physical listening/hardware and arbitrary third-party plugins remain unqualified.
See [AUDIO_EDITOR.md](AUDIO_EDITOR.md) for precise workflows and limits.
---