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:
1 parent
340ff13342
commit
d536e3127a
9 files changed
+158
-2
No files matched your search
@@ -3,7 +3,7 @@ use common_ui::*;
|
||||
use egui::{self, Color32, FontId, Pos2, Rect, RichText, Sense, Stroke, Vec2};
|
||||
use weld_core::{
|
||||
band_edge, curve_frequency, AnalyzerFrame, Listen, Mode, Report, Settings, Status, CURVE,
|
||||
DISPLAY_HIGH, DISPLAY_LOW, MAX_SECTIONS,
|
||||
DISPLAY_HIGH, DISPLAY_LOW, MAX_SECTIONS, SMEAR_AUDIBLE_MS, SMEAR_HIGH, SMEAR_LOW,
|
||||
};
|
||||
|
||||
pub use common_ui::style;
|
||||
@@ -218,6 +218,28 @@ fn summary(ui: &mut egui::Ui, settings: &Settings, state: &mut State) {
|
||||
.color(STEEL),
|
||||
);
|
||||
}
|
||||
if fit.count > 0 {
|
||||
// Typical fits vary 0.8–1 ms here, above the click threshold, so this stays a
|
||||
// neutral note rather than a warning: sustained bass hides much more.
|
||||
let r = ui.label(
|
||||
RichText::new(format!(
|
||||
"Delay spread {:.2} ms, {}–{}",
|
||||
report.smear_ms,
|
||||
hz(SMEAR_LOW),
|
||||
hz(SMEAR_HIGH)
|
||||
))
|
||||
.size(12.)
|
||||
.color(MUTED),
|
||||
);
|
||||
if report.smear_ms > SMEAR_AUDIBLE_MS {
|
||||
ui.label(
|
||||
RichText::new("Clicks may soften: compare SUM, SUM DRY")
|
||||
.size(12.)
|
||||
.color(DIM),
|
||||
);
|
||||
}
|
||||
hint(&r, state, "How much the alignment's delay changes between 500 Hz and 4 kHz. On clicks, listeners hear changes from about 0.6 ms; sustained bass hides much more. On a plucky layer, compare SUM with SUM DRY on the attacks. Fewer sections usually vary less.");
|
||||
}
|
||||
ui.add_space(10.);
|
||||
let (text, color) = status_text(&report, &frame, settings.mode);
|
||||
ui.label(RichText::new(text).size(13.).color(color));
|
||||
|
||||
Reference in new issue
Block a user