@audio/sinusoidal-residual
v1.0.2
Published
Residual noise layer — spectral subtraction of tracked partials with input phase (Serra SMS)
Downloads
359
Readme
@audio/sinusoidal-residual

Residual noise layer
npm install @audio/sinusoidal-residualimport residual from '@audio/sinusoidal-residual'The noise layer of the sinusoids+noise model (Serra-Smith SMS): input minus the additive resynthesis of its tracked partials. Phase-blind subtraction is imperfect per partial, so it works spectrally — per frame, subtract each tracked partial's estimated magnitude (Wiener-style soft mask, spread over the Hann mainlobe) from the input magnitude, then resynthesize with the input's own phase. Robust without tracking original phase. Runs sinusoidal-track internally unless a model is passed in.
residual(data, { frameSize: 2048 }) // tracks internally
residual(data, { model }) // reuse an existing analysis| Param | Default | |
|---|---|---|
| data | — | Mono PCM (positional) |
| model | — | Reuse an existing sinusoidal-track model instead of re-tracking |
| (others) | — | Forwarded to sinusoidal-track when no model is given |
Returns a Float32Array the same length as data.
Use when: extracting the noise/transient component for SMS-style decomposition — pairs with sinusoidal-synth (the sinusoidal component) to reconstruct the full signal.
Part of @audio/sinusoidal — the sinusoidal family umbrella.
MIT © audiojs
