Skip to content

v0.9.4 — ALAC (Apple Lossless) playback in M4A

Choose a tag to compare

@ferenckoscso ferenckoscso released this 12 Aug 05:58
· 4 commits to main since this release
9e63b80

Added

  • ALAC (Apple Lossless) playback, in the M4A container (.m4a) — the same bit-perfect, whole-track-in-RAM path as WAV/FLAC/AIFF. Handles 16 and 24-bit ALAC (what iTunes/Music.app actually produce), any channel count, -dir folder playback and mixed-format playlists.
  • Vendors Apple's own open-sourced ALAC reference decoder (src/alac.h, Apache License 2.0) in the same single-header style as dr_flac.h.

Fixed

  • The upstream ALAC endianness-detection macro only recognised __i386__/__x86_64__, silently treating Apple Silicon as big-endian — would have corrupted the magic cookie on an arm64 build. Fixed while vendoring, before it ever shipped.

Why

Requested directly by a user: iTunes/Music.app rips and purchases are commonly ALAC-in-M4A, and until now bpplay had no way to play them bit-perfect without a manual re-encode to FLAC.

Verified bit-exact against reference PCM (zero differing bytes) for both 16-bit/44.1kHz and 24-bit/96kHz test files. See CHANGELOG.md for full details.