Skip to content

MLow audio codec

Encodings - mlow

ENC-01 - status: review - audio

WhatsApp's low-bitrate split-band CELP speech codec ("SMPL") that reuses the Opus/CELT range coder for entropy coding.

  • Decode an MLow payload as split-band CELP. Output is 16 kHz PCM.
  • Entropy layer is the Opus/CELT range coder verbatim: read symbols from the front of the buffer, raw bits from the back.
  • Run the decode schedule in this order: TOC/frame parse; RED de-packetization; range-coded LSF -> LPC; excitation pulses; gains; pitch/LTP; CELP synthesis; harmonic and HP post-filters; comfort-noise generation.
  • MLow is a registered decoder alongside Opus; codec selection is signalled in the offer (see call-offer).
  • The neural companion post-filter is OPTIONAL; not required for intelligible audio.

Breakdown: mlow-decoder, mlow-encoder, mlow-excitation, mlow-frame, mlow-lsf-lpc, mlow-noise, mlow-postfilter, mlow-rangecoder, mlow-red-fec, mlow-vad, opus

Implemented by

Flavor Status Source Notes
whatsapp-rust working history - blame - commits 674e851
meowcaller partial history - blame - commits 70af250 f7103c5 b0fe93c e362783 8b5ad0b 72d8a03 receive DSP largely KAT-verified; CELP synth + decoder orchestration in progress

Annotation wacrg:ENC-01 — a flavor marks its implementation site in source with this comment; a script clones the source, finds it, and attaches the commit blame/permalink.

Contributors

Contributor Role
Rajeh Taher Rajeh Taher wrote initial spec

protocol history / diff - blame

References - RFC 6716 — Opus

Changelog

  • 2026-06-21 — Initial spec entry.

Back to the full spec