IMA ADPCM codec in JavaScript.
npm install imaadpcm
npm install imaadpcm
`
Examples
$3
`javascript
const imaadpcm = require("imaadpcm");
// Compressing all the samples in a file
// Only 16-bit samples are supported
adpcm_samples = imaadpcm.encode(samples);
// Decompressing all the samples in a file
// 256 block align is assumed by default
samples = imaadpcm.decode(adpcm_samples);
// Decompressig all the samples in a file
// Using a different block align (1024)
samples = imaadpcm.decode(adpcm_samples, 1024);
`
$3
`javascript
const imaadpcm = require("imaadpcm");
// Decompressing a ADPCM block
// 256 block align is assumed by default
samples = imaadpcm.decodeBlock(adpcm_block);
// Decompressing using a different block align (1024)
samples = imaadpcm.decodeBlock(adpcm_block, 1024);
// Compressing PCM samples into a block of ADPCM samples
// Only blocks of 505 samples are supported as input
// Only 16-bit samples are supported as input
adpcm_samples = imaadpcm.encodeBlock(sample_block);
`
API
`javascript
/**
* Encode 16-bit PCM samples into 4-bit IMA ADPCM samples.
* @param {!Int16Array} samples A array of samples.
* @return {!Uint8Array}
*/
export function encode(samples) {}
/**
* Decode IMA ADPCM samples into 16-bit PCM samples.
* @param {!Uint8Array} adpcmSamples A array of ADPCM samples.
* @param {number} blockAlign The block size.
* @return {!Int16Array}
*/
export function decode(adpcmSamples, blockAlign=256) {}
/**
* Encode a block of 505 16-bit samples as 4-bit ADPCM samples.
* @param {!Array} block A sample block of 505 samples.
* @return {!Array}
*/
export function encodeBlock(block) {}
/**
* Decode a block of ADPCM samples into 16-bit PCM samples.
* @param {!Array} block A adpcm sample block.
* @return {!Array}
*/
export function decodeBlock(block) {}
``