You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
De-clip now reconstructs clipped peaks with least-squares autoregressive
interpolation (LSAR) — the classical audio-restoration method (Janssen,
Veldhuis & Vries, 1986) — instead of a cubic fill. An AR model is fit to the
reliable audio either side of each clipped run (two-sided autocorrelation →
Levinson-Durbin) and the gap samples that minimise its prediction error are
solved for (banded normal equations via Cholesky), so a clipped peak is rebuilt
toward its true amplitude rather than flattened to the shoulder level. A
stability guard falls back to the previous smooth fill when a solve rings or
overshoots, so badly-clipped material softens gracefully. On a +8 dB-clipped
voice the old fill could only reach the 0.977 plateau; LSAR rebuilds the true
peaks to ~1.53 (normalise afterwards).
Fixed
Mono WAV output played in the left speaker only. hound writes 32-bit float
WAV as WAVE_FORMAT_EXTENSIBLE and tags a single channel as FRONT_LEFT, so
layout-aware players (CoreAudio / afplay) routed it hard-left. Mono output is
now tagged FRONT_CENTER and plays centred. Stereo and FLAC/AIFF were
unaffected.
Documentation
Added "Cleaning Up Sound" (book/) — a from-first-principles book on the
concepts this toolkit uses, for readers new to DAWs/DSP, with diagrams, a cover
page, and a GitHub Pages build.
Documented every remaining public item (Error + variants, AudioData +
fields, the Denoiser trait, NoisePrint/SpectralDenoiser fields, with_noise_print, generate_wave, variance) and added #![deny(missing_docs)] to the cathar crate so public docs can't regress.
Internal
Split the ~2,400-line cathar/src/lib.rs into focused modules (audio, denoise, restore, enhance, loudness, resample, error, util),
re-exported flat so the public API is unchanged. No behaviour change.