more complete promise-based wav decoder
npm install wav-reader-ts

> promise-based wav decoder
```
npm install wav-decoder-ts
- decode(src: ArrayBuffer, [opts: object]): Promise<{data: AudioData, format: Format}>Buffer
- if provide an instance of , it is converted to ArrayBuffer like Uint8Array.from(src).buffer implicitly.opts.symmetric
- decode to symmetrical valuesdecode.sync(src: ArrayBuffer, [opts: object]): {data: AudioData, format: Format}
-
- synchronous version
##### Returns
`js
interface AudioData {
sampleRate: number;
channelData: Float32Array[];
}
interface Format {
formatId: number;
floatingPoint: boolean;
numberOfChannels: number;
sampleRate: number;
byteRate: number;
blockSize: number;
bitDepth: number;
}
`
`js
const fs = require("fs");
const WavDecoder = require("wav-decoder");
const readFile = (filepath) => {
return new Promise((resolve, reject) => {
fs.readFile(filepath, (err, buffer) => {
if (err) {
return reject(err);
}
return resolve(buffer);
});
});
};
readFile("foobar.wav").then((buffer) => {
return WavDecoder.decode(buffer);
}).then(function(wavData) {
console.log(wavData.data.sampleRate);
console.log(wavData.format.bitDepth);
console.log(wavData.data.channelData[0]); // Float32Array
console.log(wavData.data.channelData[1]); // Float32Array
});
``
MIT