function dataChunk
dataChunk(): Coder<DataChunk>

Creates a coder for data chunks.

Encodes and decodes data chunk structures with:

  • 4-byte chunk ID ("data")
  • 4-byte chunk size (little-endian)
  • Exactly chunkSize bytes of audio data

The audio data length is driven by the chunkSize field, as required by RIFF: a data chunk carries no length of its own beyond chunkSize.

Examples

Basic data chunk encoding and decoding

import { assertEquals } from "@std/assert";
import { dataChunk } from "@binstruct/wav";

const dataCoder = dataChunk();
const testData = {
  chunkId: "data",
  chunkSize: 1000,
  audioData: new Array(1000).fill(0)
};

const buffer = new Uint8Array(2048);
const bytesWritten = dataCoder.encode(testData, buffer);
const [decoded, bytesRead] = dataCoder.decode(buffer);

assertEquals(bytesRead, 1008);
assertEquals(bytesWritten, 1008); // 4 (chunkId) + 4 (chunkSize) + 1000 (audioData)
assertEquals(decoded.chunkId, "data");
assertEquals(decoded.chunkSize, 1000);
assertEquals(decoded.audioData.length, 1000); // Uses chunkSize reference

Return Type

Coder<DataChunk>

A coder that can encode/decode DataChunk objects

Usage

import { dataChunk } from ".";