audioJS

@audio/sinusoidal-residual

Status calibrated

npm1.0.2licenseMIT

Residual noise layer — spectral subtraction of tracked partials with input phase (Serra SMS)

Overview

Install
Updated
Family
sinusoidal, 3 packages under it

Residual noise layer

import 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