/wav-encoder

promise-based wav encoder

Primary LanguageJavaScript

wav-encoder

Build Status NPM Version License

promise-based wav encoder

Installation

$ npm install wav-encoder

API

  • encode(audioData: AudioData, [opts: object]): Promise<ArrayBuffer>
    • audioData should contain two fields sampleRate and channelData.
    • opts is an optional parameter which used to design the output wav format.
      • opts.bitDepth the number of bits of information in each sample
      • opts.float encode to float values
      • opts.symmetric encode to symmetrical values (see #10)
      • The default format is { float: false, bitDepth: 16 }
  • encode.sync(audioData: AudioData, [opts: object]): ArrayBuffer
    • synchronous version
interface AudioData {
  sampleRate: number;
  channelData: Float32Array[];
}

Usage

const fs = require("fs");
const WavEncoder = require("wav-encoder");

const whiteNoise1sec = {
  sampleRate: 44100,
  channelData: [
    new Float32Array(44100).map(() => Math.random() - 0.5),
    new Float32Array(44100).map(() => Math.random() - 0.5)
  ]
};

WavEncoder.encode(whiteNoise1sec).then((buffer) => {
  fs.writeFileSync("noise.wav", Buffer.from(buffer));
});

License

MIT