feat(weld): show the alignment's delay spread

Weld's allpass sections add group delay between 500 Hz and 4 kHz, where
listeners hear it best. Liski et al. (2021) measured a threshold of about
0.64 ms for a positive group-delay peak on clicks. Weld now reports how much
its delay varies over that range and, above the threshold, suggests
comparing attacks in SUM and SUM DRY.

Common fits from Weld's own tests spread 0.82-1.03 ms, so the line is a
neutral note, not a warning: sustained bass hides much more than a click.

- Fit::group_delay (analytic, per section) and Fit::smear_ms in weld-core.
- Report::smear_ms, filled by the analyzer from the applied fit.
- Tests against the numeric phase slope and the analog 4Q/w0 peak.
- Display only; the audio path does not change.
This commit is contained in:
nvrl committed 2026-11-06 13:17:29 +01:00
1 parent 340ff13342
commit d536e3127a
9 files changed
+158 -2

No files matched your search

+7
View File
@@ -1,5 +1,12 @@
# Weld changelog
## Unreleased
- Show the **delay spread**: how much the alignment's group delay changes
between 500 Hz and 4 kHz, where listeners hear it best. Above 0.64 ms (the
threshold Liski et al. 2021 measured on clicks) a note suggests comparing
attacks in SUM and SUM DRY. Display only; the sound does not change.
## 0.2.0
- Change the CLAP ID to `io.narl.bass-foundry.weld`. Hosts see this as a new
+5
View File
@@ -50,6 +50,11 @@ plugins. Keep the font license with redistributed packages.
- The lower plot shows the phase of this layer against the other one, before
(grey) and after (pink), and Weld's own phase curve (blue). After alignment
the pink line sits near 0°.
- **Delay spread** under the sections is how much Weld's delay changes
between 500 Hz and 4 kHz. On clicks, listeners hear about 0.6 ms of change
there (Liski et al. 2021); sustained bass hides much more, and common fits
reach 0.8–1 ms. Above that threshold Weld adds a note: on a plucky layer,
compare the attacks in SUM and SUM DRY. Fewer sections usually spread less.
3. Compare by ear: mute the other layer's own route to the master, set
**Listen** to **SUM**, then to **SUM DRY**. Set Listen back to **LAYER** and
unmute the route for the mix.
Binary file not shown.

Before

Width:  |  Height:  |  Size: 258 KiB

After

Width:  |  Height:  |  Size: 266 KiB