x-law
Version:
A-Law and mu-Law codecs for JavaScript/TypeScript
42 lines (37 loc) • 1.33 kB
text/typescript
/**
* @module x-law/utils
* Utility functions for common audio processing tasks.
*/
type BitDepth = 8 | 16 | 24 | 32 | 48;
type Channels = 1 | 2;
/**
* A-Law codec for audio processing.
*/
declare namespace alaw {
function decodeSample(sample: number): number;
function encodeSample(sample: number): number;
function decode(samples: Buffer): Int16Array;
function encode(samples: Int16Array): Uint8Array;
function encodeBuffer(buffer: Buffer): Buffer;
function decodeBuffer(buffer: Buffer): Buffer;
}
/**
* μ-Law codec for audio processing.
*/
declare namespace mulaw {
function decodeSample(sample: number): number;
function encodeSample(sample: number): number;
function decode(samples: Uint8Array): Int16Array;
function encode(samples: Int16Array): Uint8Array;
function encodeBuffer(buffer: Buffer): Buffer;
function decodeBuffer(buffer: Buffer): Buffer;
}
/**
* Utility functions for common audio processing tasks.
*/
declare namespace utils {
function calculateLoudness(buffer: Buffer, bitDepth: BitDepth): number;
function createWavHeader(dataSize: number, sampleRate: number, channels: Channels, bitDepth: BitDepth): Buffer;
function resample(samples: number[], inputSampleRate: number, targetSampleRate: number, bitDepth: BitDepth): number[];
}
export { alaw, mulaw, utils };