Decode AAC/M4A audio to PCM float samples. FAAD2 compiled to WASM — works in Node.js and browsers, no native dependencies.
npm i @audio/aac-decode
import decode from '@audio/aac-decode'
// M4A or raw ADTS — auto-detected
let { channelData, sampleRate } = await decode(uint8array)
// channelData: Float32Array[] (one per channel)
// sampleRate: numberimport { decoder } from '@audio/aac-decode'
let dec = await decoder()
let { channelData, sampleRate } = dec.decode(chunk)
dec.free()Whole-file decode. Auto-detects M4A (MP4 container) vs raw ADTS.
Creates a decoder instance for manual control.
dec.decode(data)— decode chunk, returns{ channelData, sampleRate }dec.flush()— flush remaining (returns empty for AAC)dec.free()— release WASM memory
{ channelData: Float32Array[], sampleRate: number }- M4A / MP4 with AAC audio
- Raw ADTS streams (.aac)
- LC, HE-AAC v1/v2 (SBR, PS)
GPL-2.0 (FAAD2) — krishnized