feat: invert selected audio sample polarity without changing surrounding frames

This commit is contained in:
Johannes Findeisen 2026-11-06 01:04:45 +01:00
commit f528a169f8
7 changed files with 18 additions and 7 deletions

View file

@ -25,3 +25,7 @@ Export selected frames writes a new mono float32 WAV of the half-open selection
## Phase 72
Reverse selection changes only the chosen source frames in a new local snapshot. Undo / redo toggles the most recent processing step; selection and view are unchanged. Processing does not affect playback until Save full copy and relink. Close discards unsaved local processing. Sources are bounded to 16 MiB of float samples; preparing a new edit can temporarily retain three snapshots (48 MiB), then two (32 MiB).
## Phase 73
Invert polarity negates selected float samples; it is not time reversal. Over-range finite samples remain over-range; no implicit limiting is performed. Outside-selection frames are bit-preserved in the copied snapshot.

View file

@ -1747,12 +1747,12 @@ Implemented: immutable whole-source snapshots reverse only selected frames; the
Invert selected samples without altering frames outside the selection, with reversible local processing and no implicit clipping.
### 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: selected-range polarity inversion preserves source length and every surrounding sample, supports local undo/redo and full-copy adoption. Exact signs, two inversions restoring input and focused GUI processing/undo pass.
---