node-audio-mixer
Version:
PCM audio mixer with customizable parameters
19 lines (18 loc) • 1.07 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.changeEndianness = changeEndianness;
const os_1 = require("os");
const IsLittleEndian_1 = require("../General/IsLittleEndian");
const GetMethodName_1 = require("../General/GetMethodName");
function changeEndianness(audioData, params, mixerEndianness = (0, os_1.endianness)()) {
const bytesPerElement = params.bitDepth / 8;
const isInputLe = (0, IsLittleEndian_1.isLittleEndian)(params.endianness);
const isMixerLe = (0, IsLittleEndian_1.isLittleEndian)(mixerEndianness);
const getSampleMethod = `get${(0, GetMethodName_1.getMethodName)(params.bitDepth, params.unsigned, params.float)}`;
const setSampleMethod = `set${(0, GetMethodName_1.getMethodName)(params.bitDepth, params.unsigned, params.float)}`;
for (let index = 0; index < audioData.byteLength; index += bytesPerElement) {
const sample = audioData[getSampleMethod](index, isInputLe);
audioData[setSampleMethod](index, sample, isMixerLe);
}
params.endianness = mixerEndianness;
}