UNPKG

node-audio-mixer

Version:

PCM audio mixer with customizable parameters

19 lines (18 loc) 1.07 kB
"use strict"; 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; }