feat: normalize selected audio clips to a bounded sample peak

This commit is contained in:
Johannes Findeisen 2026-11-06 00:46:14 +01:00
commit d676d74a11
10 changed files with 94 additions and 6 deletions

View file

@ -38,3 +38,7 @@ Edit/MIDI tools/Build chords accepts 1..8 unique nonzero semitone intervals, suc
## Phase 66 — Offline Arpeggio Generation
Edit/MIDI tools/Generate arpeggio replaces source notes with a written pattern. Equal-onset notes on the same channel form a chord lasting until its longest note end. The pattern cycles sorted pitches upward or downward, with the selected step and gate. Each step inherits its chosen note velocity/channel. All source notes, including hidden trimmed notes, participate. This is offline generation with undo, not a live arpeggiator or tempo-synced MIDI effect.
## 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.