@alac/encoder
v0.1.0
Published
An encoder that produces raw ALAC data from PCM data.
Downloads
8
Readme
ALAC Encoder
An encoder that produces raw ALAC data from PCM data.
Installation
npm install --save @alac/encoder
Usage
// The raw data you want to encode, could also be a stream or generated on the fly
const pcmData = new Uint8Array(/* ... */)
const encoder = new ALACEncoder()
// This buffer will be written into from the encoder, it needs to hold the largest possible packet size
const outputBuffer = new Uint8Array(encoder.bytesPerPacket + ALACEncoder.maxEscapeHeaderBytes)
for (let pos = 0; pos < pcmData.byteLength; pos += encoder.bytesPerPacket) {
// Take the next `encoder.bytesPerPacket` bytes from the raw PCM data
const chunk = pcmData.subarray(pos, pos + encoder.bytesPerPacket)
// Encode those bytes into one packet
const bytesWritten = encoder.encodeChunk(chunk, outputBuffer)
// Read the first `bytesWritten` bytes of the output buffer to get the final packet
const packet = outputBuffer.slice(0, bytesWritten)
}