Skip to content

· Effects SDK team · 3 min read

Audio Effects SDK 2.6 for the web: new speed model, redesigned AGC, latency modes

Audio Effects SDK 2.6 for the web is about voice quality and predictable latency. The speed preset moves to a new model family, Studio Sound gets a redesigned automatic gain control, a new noise gate and a lookahead limiter, and the jitter buffer learns from underruns. The public API is additive only — denoise-only integrations upgrade without changes. Patch 2.6.1 followed a day later with AGC and noise-gate edge-case fixes.

2.6.0 release notes · 2.6.1 release notes · API reference · Live demo

Do you need to change anything?#

Your integration Action
Noise suppression only, models from our CDN Nothing — upgrade
Self-hosted models (sdk_url on your host) Copy two new model files
Studio Sound with default options Check the sound — EQ and compressor are now off by default
enableAutoGain: true Expect lower, steadier gain; the old behavior cannot be restored

Self-hosted models#

Preset 2.5.2 2.6.0
speed audio-model-1.0.1.tsvb audio-model-4.0.2.wasm (new model family)
balanced audio-model-3.3.2.wasm audio-model-3.3.3.wasm
quality audio-model-2.5.0.tsvb unchanged

A missing model does not throw — onReady just never fires. The new getRequiredModels() lets you check the folder:

for (const m of sdk.getRequiredModels()) {
  const res = await fetch(m.url, { method: 'HEAD' });
  if (!res.ok) console.error(`missing model for "${m.preset}": ${m.path}`);
}

Keep the old files next to the new ones: names are versioned, so clients still on 2.5.x keep working.

Studio Sound defaults#

The equalizer and the compressor are now off unless you turn them on. To keep the 2.5.2 sound:

sdk.setStudioSoundOptions({
  enabled: true,
  options: { enableEqualizer: true, enableCompressorEQ: true },
});

Options are merged into the current state, so send the whole object on every call.

Studio Sound, rebuilt#

  • AGC is now speech-gated. The gain is the lowest of four limits — the RMS target, a peak ceiling from the measured crest factor, an output-noise ceiling and agcMaxBoostDb — and changes no faster than a fixed number of dB per second. Gain increases wait for sustained speech, so a door slam does not start it climbing, and in noisy rooms the AGC refuses to amplify the room with the voice.
  • Noise gate sits after the denoiser with softer defaults (−65 dBFS threshold, −18 dB reduction); since 2.6.1 its threshold follows a rolling noise estimate, so first words and quiet microphones survive.
  • Limiter is a 5 ms lookahead brickwall limiter: peaks no longer slip through.

New options: agcMaxBoostDb, agcSpeechMarginDb, agcMaxGainChangeDbPerSec, agcStartupGainChangeDbPerSec, agcMaxOutputNoiseDb, agcPeakTargetDb and enableEqualizer. More in the Studio Sound overview.

Latency you can choose#

sdk.config({
  context_sample_rate: 48000, // match your encoder (48 kHz for Opus) to skip a resample
  latency_mode: 'auto',       // 'low' | 'stable' | 'auto'
});
  • low starts with a tight buffer, stable keeps more slack, auto starts low and backs off after underruns.
  • The output floor is learned from real underruns instead of being fixed.
  • Recovery from latency spikes uses a reworked WSOLA time-compression that is nearly inaudible.
  • A new polyphase resampler lets the AudioContext run at 48 kHz while the model runs at 16 or 32 kHz.

New diagnostics API#

getLatencyMs(), isRunning(), getInputAudioTrack() (to see which browser processing was really applied), getSpeedupDebugInfo(), enableDebugStats() / onDebugStats() for clipping, limiter hits and underruns, and setDenoiseStages() to skip denoise stages on clean input.

2.6.1 fixes#

  • The AGC no longer creeps up on non-speech such as denoiser residue or repeated knocks.
  • processBuffer() works with the speed and quality presets: the buffer is resampled to the model rate and back. Init failures are reported through ErrorBus instead of returning an empty buffer, and Studio Sound state no longer leaks between calls.

Getting started: Web guide · Start a free trial

Ready to try it in your app?

Start a free trial in the Developer Portal and run your first effect today.