Skip to content

SuperLAME 1.0.2

Choose a tag to compare

@MSIVST MSIVST released this 05 Jul 11:08

SuperLAME 1.0.2 — bug-fix release

Three bugs found in a source audit are fixed — a crash, a silent resampling
quality fault, and a wrong sample-rate decision for mono files. If you
multithread-encode very short clips, use --resample across clock families
(44.1 kHz ↔ 48 kHz), use low CBR/ABR bitrates, or encode mono material, you
should update.

Fixed

  • Multithreaded encoding of very short inputs crashed. An input holding
    fewer full MP3 frames than the chunk overlap (under ~0.1 s at 44.1 kHz, up
    to ~0.18 s at 22.05/24 kHz) corrupted the heap and crashed with -t ≥ 2.
    Such inputs now take a single-worker path; their output decodes to PCM
    bit-identical with a single-thread encode. Single-thread was never affected.

  • The parallel resampler misaligned its chunk seams at non-integer rate
    ratios.
    Conversions like 44.1 kHz → 48 kHz (--resample 48) or the
    low-bitrate auto-downsamples to 32/24/16/12/8 kHz left every chunk shifted
    by a sub-sample offset — an error up to −13 dBFS below the signal, with a
    discontinuity at every seam. Clean integer conversions (88.2 → 44.1,
    96 → 48, 176.4 → 44.1, DXD) were always exact and are unchanged. After the
    fix all ratios measure at the double-precision floor (−297 dBFS vs the
    reference).

  • Mono files got the stereo auto-downsample decision. At e.g. CBR 96 a
    mono file was needlessly cut to 32 kHz; LAME keeps mono at 44.1 kHz at that
    bitrate (mono has twice the per-channel bit budget). The rate decision now
    sees the true channel count and matches stock LAME for both mono and stereo.

Also hardened in this release: encoder teardown no longer aborts on
out-of-memory before printing its error; --decode reports disk-full write
failures and refuses >4 GB WAV output instead of writing a wrapped header;
inputs beyond 2³¹ samples are refused with a clear message; small-frame
Xing/Info tag patching stays in bounds.

See CHANGELOG.md
for the full technical write-up.

Verified

  • Regression suite extended 28 → 35 cases (tiny-input MT robustness,
    resample seam integrity vs an independent reference, channel-aware rate
    decision): 35/35 pass
  • Byte-identical output on all unaffected paths (normal-length MT encodes,
    single-thread encodes, integer-family resamples)
  • ST vs MT equivalence and znver3-vs-SSE2 engine parity unchanged

Download

SuperLAME-1.0.2-win64.zip — the binary plus all license texts and source
pointer (GPL-complete). CPU engines (znver5 / znver4 / znver3 / SSE2) selected
at runtime; Intel CPUs supported. Built with clang/LLVM 21.

SHA-256 (SuperLAME-1.0.2.exe):
0c87ddb5bfc7d02a51a224404fb112ebcfab7802c10165f8305e8fc36654fb21

Provided as-is, with NO WARRANTY (GPL §11–12). GPL v2 or later.