This Package bundles the ebur128 Rust crate as compiled WASM, so it can be used in the browser.
- v1.x.x is compatible with webpack style bundlers
- v2.x.x is compatible for use without bundlers (plain JS/HTML or the Vite builder)
the calls are blocking and take some time to execute, calling this from a WebWorker is advised for best UX.
currently the following methods are exposed:
/**
* @param {number} sample_rate
* @param {Float32Array} samples
* @returns {number}
*/
export function ebur128_integrated_mono(sample_rate: number, samples: Float32Array): number;
/**
* @param {number} sample_rate
* @param {Float32Array} left
* @param {Float32Array} right
* @returns {number}
*/
export function ebur128_integrated_stereo(sample_rate: number, left: Float32Array, right: Float32Array): number;
/**
* @param {number} sample_rate
* @param {Float32Array} samples
* @returns {number}
*/
export function ebur128_true_peak_mono(sample_rate: number, samples: Float32Array): number;
/**
* @param {number} sample_rate
* @param {Float32Array} left
* @param {Float32Array} right
* @returns {Float64Array}
*/
export function ebur128_true_peak_stereo(sample_rate: number, left: Float32Array, right: Float32Array): Float64Array;
these methods correspond to the EBU R128 defined Loudness Normalization functions
see ./www/index.js for a demo usage
you can play with the features in a local demo app:
make
cd www
npm run start # goto http://localhost:3000/
Apache License, Version 2.0, (LICENSE or http://www.apache.org/licenses/LICENSE-2.0)