signalsmith-stretch/web/release/SignalsmithStretch.js
2025-04-14 15:47:04 +01:00

449 lines
104 KiB
JavaScript

var SignalsmithStretch = (() => {
var _scriptName = typeof document != 'undefined' ? document.currentScript?.src : undefined;
return (
async function(moduleArg = {}) {
var moduleRtn;
var Module=moduleArg;var readyPromiseResolve,readyPromiseReject;var readyPromise=new Promise((resolve,reject)=>{readyPromiseResolve=resolve;readyPromiseReject=reject});var ENVIRONMENT_IS_WEB=typeof window=="object";var ENVIRONMENT_IS_WORKER=typeof WorkerGlobalScope!="undefined";var ENVIRONMENT_IS_NODE=typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node=="string"&&process.type!="renderer";var ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER;var crypto=globalThis?.crypto||{getRandomValues:array=>{for(var i=0;i<array.length;i++)array[i]=Math.random()*256|0}};var performance=globalThis?.performance||{now:_=>Date.now()};var moduleOverrides=Object.assign({},Module);var arguments_=[];var quit_=(status,toThrow)=>{throw toThrow};var scriptDirectory="";var readAsync,readBinary;if(ENVIRONMENT_IS_SHELL){readBinary=f=>{if(typeof readbuffer=="function"){return new Uint8Array(readbuffer(f))}let data=read(f,"binary");assert(typeof data=="object");return data};readAsync=async f=>readBinary(f);globalThis.clearTimeout??=id=>{};globalThis.setTimeout??=f=>f();arguments_=globalThis.arguments||globalThis.scriptArgs;if(typeof quit=="function"){quit_=(status,toThrow)=>{setTimeout(()=>{if(!(toThrow instanceof ExitStatus)){let toLog=toThrow;if(toThrow&&typeof toThrow=="object"&&toThrow.stack){toLog=[toThrow,toThrow.stack]}err(`exiting due to exception: ${toLog}`)}quit(status)});throw toThrow}}if(typeof print!="undefined"){globalThis.console??={};console.log=print;console.warn=console.error=globalThis.printErr??print}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!="undefined"&&document.currentScript){scriptDirectory=document.currentScript.src}if(_scriptName){scriptDirectory=_scriptName}if(scriptDirectory.startsWith("blob:")){scriptDirectory=""}else{scriptDirectory=scriptDirectory.slice(0,scriptDirectory.replace(/[?#].*/,"").lastIndexOf("/")+1)}{if(ENVIRONMENT_IS_WORKER){readBinary=url=>{var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=async url=>{var response=await fetch(url,{credentials:"same-origin"});if(response.ok){return response.arrayBuffer()}throw new Error(response.status+" : "+response.url)}}}else{}var out=console.log.bind(console);var err=console.error.bind(console);Object.assign(Module,moduleOverrides);moduleOverrides=null;var wasmBinary;var wasmMemory;var ABORT=false;var EXITSTATUS;var HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAP64,HEAPU64,HEAPF64;var runtimeInitialized=false;function updateMemoryViews(){var b=wasmMemory.buffer;Module["HEAP8"]=HEAP8=new Int8Array(b);HEAP16=new Int16Array(b);HEAPU8=new Uint8Array(b);HEAPU16=new Uint16Array(b);HEAP32=new Int32Array(b);HEAPU32=new Uint32Array(b);HEAPF32=new Float32Array(b);HEAPF64=new Float64Array(b);HEAP64=new BigInt64Array(b);HEAPU64=new BigUint64Array(b)}function preRun(){}function initRuntime(){runtimeInitialized=true;wasmExports["e"]()}function preMain(){}function postRun(){}var runDependencies=0;var dependenciesFulfilled=null;function addRunDependency(id){runDependencies++}function removeRunDependency(id){runDependencies--;if(runDependencies==0){if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}function abort(what){what="Aborted("+what+")";err(what);ABORT=true;what+=". Build with -sASSERTIONS for more info.";var e=new WebAssembly.RuntimeError(what);readyPromiseReject(e);throw e}var wasmBinaryFile="data:application/octet-stream;base64,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A0AgAyALIAFBAnRqKgIAIhAgEJS7oCEDIAAgAWoiASAJSQ0AC0QAAAAAAADwPyADn6MhAyAKIQEDQCALIAFBAnRqIgwgDCoCALsgA6K2OAIAIAAgAWoiASAJSQ0ACwsgCkEBaiIKIABHDQALCyAJRQ0AQbwyKAIAIQBBsDIoAgAhC0EAIQEgCUEETwRAIAlBfHEhD0EAIQoDQCAAIAFBAnQiDGogCyAMaioCADgCACAAIAxBBHIiDWogCyANaioCADgCACAAIAxBCHIiDWogCyANaioCADgCACAAIAxBDHIiDGogCyAMaioCADgCACABQQRqIQEgCkEEaiIKIA9HDQALCyAJQQNxIgpFDQADQCAAIAFBAnQiCWogCSALaioCADgCACABQQFqIQEgDkEBaiIOIApHDQALCwuDBwEGf0HEMygCACIDQbwzKAIAIgJrQRxtIABPBEACQEHAMygCACACa0EcbSIFIAAgACAFSxsiBEUNAAJAIARBA3EiBkUEQCAEIQMMAQsgBCEDA0AgAiABKQIANwIAIAIgASgCGDYCGCACIAEpAhA3AhAgAiABKQIINwIIIANBAWshAyACQRxqIQIgB0EBaiIHIAZHDQALCyAEQQRJDQADQCACIAEpAgA3AgAgAiABKAIYNgIYIAIgASkCEDcCECACIAEpAgg3AgggAiABKAIYNgI0IAIgASkCEDcCLCACIAEpAgg3AiQgAiABKQIANwIcIAIgASgCGDYCUCACIAEpAhA3AkggAkFAayABKQIINwIAIAIgASkCADcCOCACIAEpAgA3AlQgAiABKQIINwJcIAIgASkCEDcCZCACIAEoAhg2AmwgAkHwAGohAiADQQRrIgMNAAsLIAAgBUsEQEHAMygCACICIAAgBWtBHGxqIQADQCACIAEpAgA3AgAgAiABKAIYNgIYIAIgASkCEDcCECACIAEpAgg3AgggAkEcaiICIABHDQALQcAzIAA2AgAPC0HAM0G8MygCACAAQRxsajYCAA8LIAIEQEHAMyACNgIAIAIQA0HEM0EANgIAQbwzQgA3AgBBACEDCwJAIABByqSSyQBPDQBByaSSyQAgA0EcbSIDQQF0IgQgACAAIARJGyADQaSSySRPGyIDQcqkkskATw0AQcAzIANBHGwiAxAEIgQ2AgBBvDMgBDYCAEHEMyADIARqNgIA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";function getBinarySync(file){if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}var binary=tryParseAsDataURI(file);if(binary){return binary}if(readBinary){return readBinary(file)}throw"both async and sync fetching of the wasm failed"}async function getWasmBinary(binaryFile){return getBinarySync(binaryFile)}async function instantiateArrayBuffer(binaryFile,imports){try{var binary=await getWasmBinary(binaryFile);var instance=await WebAssembly.instantiate(binary,imports);return instance}catch(reason){err(`failed to asynchronously prepare wasm: ${reason}`);abort(reason)}}async function instantiateAsync(binary,binaryFile,imports){return instantiateArrayBuffer(binaryFile,imports)}function getWasmImports(){return{a:wasmImports}}async function createWasm(){function receiveInstance(instance,module){wasmExports=instance.exports;wasmMemory=wasmExports["d"];updateMemoryViews();removeRunDependency("wasm-instantiate");return wasmExports}addRunDependency("wasm-instantiate");function receiveInstantiationResult(result){return receiveInstance(result["instance"])}var info=getWasmImports();try{var result=await instantiateAsync(wasmBinary,wasmBinaryFile,info);var exports=receiveInstantiationResult(result);return exports}catch(e){readyPromiseReject(e);return Promise.reject(e)}}class ExitStatus{name="ExitStatus";constructor(status){this.message=`Program terminated with exit(${status})`;this.status=status}}var base64Decode=b64=>{var b1,b2,i=0,j=0,bLength=b64.length;var output=new Uint8Array((bLength*3>>2)-(b64[bLength-2]=="=")-(b64[bLength-1]=="="));for(;i<bLength;i+=4,j+=3){b1=base64ReverseLookup[b64.charCodeAt(i+1)];b2=base64ReverseLookup[b64.charCodeAt(i+2)];output[j]=base64ReverseLookup[b64.charCodeAt(i)]<<2|b1>>4;output[j+1]=b1<<4|b2>>2;output[j+2]=b2<<6|base64ReverseLookup[b64.charCodeAt(i+3)]}return output};var isDataURI=filename=>filename.startsWith(dataURIPrefix);var dataURIPrefix="data:application/octet-stream;base64,";var tryParseAsDataURI=filename=>{if(isDataURI(filename)){return base64Decode(filename.slice(dataURIPrefix.length))}};var __abort_js=()=>abort("");var getHeapMax=()=>2147483648;var alignMemory=(size,alignment)=>Math.ceil(size/alignment)*alignment;var abortOnCannotGrowMemory=requestedSize=>{abort("OOM")};var growMemory=size=>{var b=wasmMemory.buffer;var pages=(size-b.byteLength+65535)/65536|0;try{wasmMemory.grow(pages);updateMemoryViews();return 1}catch(e){}};var _emscripten_resize_heap=requestedSize=>{var oldSize=HEAPU8.length;requestedSize>>>=0;var maxHeapSize=getHeapMax();if(requestedSize>maxHeapSize){abortOnCannotGrowMemory(requestedSize)}for(var cutDown=1;cutDown<=4;cutDown*=2){var overGrownHeapSize=oldSize*(1+.5/cutDown);overGrownHeapSize=Math.min(overGrownHeapSize,requestedSize+100663296);var newSize=Math.min(maxHeapSize,alignMemory(Math.max(requestedSize,overGrownHeapSize),65536));var replacement=growMemory(newSize);if(replacement){return true}}abortOnCannotGrowMemory(requestedSize)};var initRandomFill=()=>view=>crypto.getRandomValues(view);var randomFill=view=>{(randomFill=initRandomFill())(view)};var _random_get=(buffer,size)=>{randomFill(HEAPU8.subarray(buffer,buffer+size));return 0};var keepRuntimeAlive=()=>true;var _proc_exit=code=>{EXITSTATUS=code;if(!keepRuntimeAlive()){ABORT=true}quit_(code,new ExitStatus(code))};var exitJS=(status,implicit)=>{EXITSTATUS=status;_proc_exit(status)};var handleException=e=>{if(e instanceof ExitStatus||e=="unwind"){return EXITSTATUS}quit_(1,e)};var UTF8Decoder=typeof TextDecoder!="undefined"?new TextDecoder:undefined;var UTF8ArrayToString=(heapOrArray,idx=0,maxBytesToRead=NaN)=>{var endIdx=idx+maxBytesToRead;var endPtr=idx;while(heapOrArray[endPtr]&&!(endPtr>=endIdx))++endPtr;if(endPtr-idx>16&&heapOrArray.buffer&&UTF8Decoder){return UTF8Decoder.decode(heapOrArray.subarray(idx,endPtr))}var str="";while(idx<endPtr){var u0=heapOrArray[idx++];if(!(u0&128)){str+=String.fromCharCode(u0);continue}var u1=heapOrArray[idx++]&63;if((u0&224)==192){str+=String.fromCharCode((u0&31)<<6|u1);continue}var u2=heapOrArray[idx++]&63;if((u0&240)==224){u0=(u0&15)<<12|u1<<6|u2}else{u0=(u0&7)<<18|u1<<12|u2<<6|heapOrArray[idx++]&63}if(u0<65536){str+=String.fromCharCode(u0)}else{var ch=u0-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}}return str};var UTF8ToString=(ptr,maxBytesToRead)=>ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):"";for(var base64ReverseLookup=new Uint8Array(123),i=25;i>=0;--i){base64ReverseLookup[48+i]=52+i;base64ReverseLookup[65+i]=i;base64ReverseLookup[97+i]=26+i}base64ReverseLookup[43]=62;base64ReverseLookup[47]=63;var wasmImports={c:__abort_js,b:_emscripten_resize_heap,a:_random_get};var wasmExports=await createWasm();var ___wasm_call_ctors=wasmExports["e"];var _setBuffers=Module["_setBuffers"]=wasmExports["g"];var _blockSamples=Module["_blockSamples"]=wasmExports["h"];var _intervalSamples=Module["_intervalSamples"]=wasmExports["i"];var _inputLatency=Module["_inputLatency"]=wasmExports["j"];var _outputLatency=Module["_outputLatency"]=wasmExports["k"];var _reset=Module["_reset"]=wasmExports["l"];var _presetDefault=Module["_presetDefault"]=wasmExports["m"];var _presetCheaper=Module["_presetCheaper"]=wasmExports["n"];var _configure=Module["_configure"]=wasmExports["o"];var _setTransposeFactor=Module["_setTransposeFactor"]=wasmExports["p"];var _setTransposeSemitones=Module["_setTransposeSemitones"]=wasmExports["q"];var _seek=Module["_seek"]=wasmExports["r"];var _process=Module["_process"]=wasmExports["s"];var _flush=Module["_flush"]=wasmExports["t"];var _main=Module["_main"]=wasmExports["u"];Module["UTF8ToString"]=UTF8ToString;function callMain(){var entryFunction=_main;var argc=0;var argv=0;try{var ret=entryFunction(argc,argv);exitJS(ret,true);return ret}catch(e){return handleException(e)}}function run(){if(runDependencies>0){dependenciesFulfilled=run;return}preRun();if(runDependencies>0){dependenciesFulfilled=run;return}function doRun(){Module["calledRun"]=true;if(ABORT)return;initRuntime();preMain();readyPromiseResolve(Module);var noInitialRun;if(!noInitialRun)callMain();postRun()}{doRun()}}run();moduleRtn=readyPromise;
return moduleRtn;
}
);
})();
function registerWorkletProcessor(Module, audioNodeKey) {
class WasmProcessor extends AudioWorkletProcessor {
constructor(options) {
super(options);
this.wasmReady = false;
this.wasmModule = null;
this.channels = 0;
this.buffersIn = [];
this.buffersOut = [];
this.audioBuffers = []; // list of (multi-channel) audio buffers
this.audioBuffersStart = 0; // time-stamp for the first audio buffer
this.audioBuffersEnd = 0; // just to be helpful
this.timeIntervalSamples = sampleRate*0.1;
this.timeIntervalCounter = 0;
this.timeMap = [{
active: false,
input: 0,
output: 0,
rate: 1,
semitones: 0,
loopStart: 0,
loopEnd: 0
}];
let remoteMethods = {
configure: config => {
Object.assign(this.config, config);
this.configure();
},
latency: _ => {
return this.inputLatencySeconds + this.outputLatencySeconds;
},
setUpdateInterval: seconds => {
this.timeIntervalSamples = sampleRate*seconds;
},
stop: when => {
if (typeof when !== 'number') when = currentTime;
return remoteMethods.schedule({active: false, output: when});
},
start: (when, offset, duration, rate, semitones) => {
if (typeof when === 'object') {
if (!('active' in when)) when.active = true;
return remoteMethods.schedule(when);
}
let obj = {active: true, input: 0, output: currentTime + this.outputLatencySeconds};
if (typeof when === 'number') obj.output = when;
if (typeof offset === 'number') obj.input = offset;
if (typeof rate === 'number') obj.rate = rate;
if (typeof semitones === 'number') obj.semitones = semitones;
let result = remoteMethods.schedule(obj);
if (typeof duration === 'number') {
remoteMethods.stop(obj.output + duration);
obj.output += duration;
obj.active = false;
remoteMethods.schedule(obj);
}
return result;
},
schedule: (objIn, adjustPrevious) => {
let outputTime = ('outputTime' in objIn) ? objIn.outputTime : currentTime;
let latestSegment = this.timeMap[this.timeMap.length - 1];
while (this.timeMap.length && this.timeMap[this.timeMap.length - 1].output >= outputTime) {
latestSegment = this.timeMap.pop();
}
let obj = {
active: latestSegment.active,
input: null,
output: outputTime,
rate: latestSegment.rate,
semitones: latestSegment.semitones,
loopStart: latestSegment.loopStart,
loopEnd: latestSegment.loopEnd
};
Object.assign(obj, objIn);
if (obj.input === null) {
let rate = (latestSegment.active ? latestSegment.rate : 0);
obj.input = latestSegment.input + (obj.output - latestSegment.output)*rate;
}
this.timeMap.push(obj);
if (adjustPrevious && this.timeMap.length > 1) {
let previous = this.timeMap[this.timeMap.length - 2];
if (previous.output < currentTime) {
let rate = (previous.active ? previous.rate : 0);
previous.input += (currentTime - previous.output)*rate;
previous.output = currentTime;
}
previous.rate = (obj.input - previous.input)/(obj.output - previous.output);
}
let currentMapSegment = this.timeMap[0];
while (this.timeMap.length > 1 && this.timeMap[1].output <= outputTime) {
this.timeMap.shift();
currentMapSegment = this.timeMap[0];
}
let rate = (currentMapSegment.active ? currentMapSegment.rate : 0);
let inputTime = currentMapSegment.input + (outputTime - currentMapSegment.output)*rate;
this.timeIntervalCounter = this.timeIntervalSamples;
this.port.postMessage(['time', inputTime]);
return obj;
},
dropBuffers: toSeconds => {
if (typeof toSeconds !== 'number') {
let buffers = this.audioBuffers.flat(1).map(b => b.buffer);;
this.audioBuffers = [];
this.audioBuffersStart = this.audioBuffersEnd = 0;
return {
value: {start: 0, end: 0},
transfer: buffers
};
}
let transfer = [];
while (this.audioBuffers.length) {
let first = this.audioBuffers[0];
let length = first[0].length;
let endSamples = this.audioBuffersStart + length;
let endSeconds = endSamples/sampleRate;
if (endSeconds > toSeconds) break;
this.audioBuffers.shift().forEach(b => transfer.push(b.buffer));
this.audioBuffersStart += length;
}
return {
value: {
start: this.audioBuffersStart/sampleRate,
end: this.audioBuffersEnd/sampleRate
},
transfer: transfer
};
},
addBuffers: sampleBuffers => {
sampleBuffers = [].concat(sampleBuffers);
this.audioBuffers.push(sampleBuffers);
let length = sampleBuffers[0].length;
this.audioBuffersEnd += length;
return this.audioBuffersEnd/sampleRate;
}
};
let pendingMessages = [];
this.port.onmessage = event => pendingMessages.push(event);
Module().then(wasmModule => {
this.wasmModule = wasmModule;
this.wasmReady = true;
wasmModule._main();
this.channels = options.numberOfOutputs ? options.outputChannelCount[0] : 2; // stereo by default
this.configure();
this.port.onmessage = event => {
let data = event.data;
let messageId = data.shift();
let method = data.shift();
let result = remoteMethods[method](...data);
if (result?.transfer) {
this.port.postMessage([messageId, result.value], result.transfer);
} else {
this.port.postMessage([messageId, result]);
}
};
let methodArgCounts = {};
for (let key in remoteMethods) {
methodArgCounts[key] = remoteMethods[key].length;
}
this.port.postMessage(['ready', methodArgCounts]);
pendingMessages.forEach(this.port.onmessage);
pendingMessages = null;
});
}
config = {
tonalityHz: 8000
};
configure() {
if (this.config.blockMs) {
let blockSamples = Math.round(this.config.blockMs/1000*sampleRate);
let intervalSamples = Math.round((this.config.intervalMs || this.config.blockMs*0.25)/1000*sampleRate);
let splitComputation = this.config.splitComputation;
this.wasmModule._configure(this.channels, blockSamples, intervalSamples, splitComputation);
this.wasmModule._reset();
} else if (this.config.preset == 'cheaper') {
this.wasmModule._presetCheaper(this.channels, sampleRate);
} else {
this.wasmModule._presetDefault(this.channels, sampleRate);
}
this.updateBuffers();
this.inputLatencySeconds = this.wasmModule._inputLatency()/sampleRate;
this.outputLatencySeconds = this.wasmModule._outputLatency()/sampleRate;
}
updateBuffers() {
let wasmModule = this.wasmModule;
// longer than one STFT block, so we can seek smoothly
this.bufferLength = (wasmModule._inputLatency() + wasmModule._outputLatency());
let lengthBytes = this.bufferLength*4;
let bufferPointer = wasmModule._setBuffers(this.channels, this.bufferLength);
this.buffersIn = [];
this.buffersOut = [];
for (let c = 0; c < this.channels; ++c) {
this.buffersIn.push(bufferPointer + lengthBytes*c);
this.buffersOut.push(bufferPointer + lengthBytes*(c + this.channels));
}
}
process(inputList, outputList, parameters) {
if (!this.wasmReady) {
outputList.forEach(output => {
output.forEach(channel => {
channel.fill(0);
});
});
return true;
}
if (!outputList[0]?.length) return false;
let outputTime = currentTime + this.outputLatencySeconds;
while (this.timeMap.length > 1 && this.timeMap[1].output <= outputTime) {
this.timeMap.shift();
}
let currentMapSegment = this.timeMap[0];
let wasmModule = this.wasmModule;
wasmModule._setTransposeSemitones(currentMapSegment.semitones, this.config.tonalityHz/sampleRate)
// Check the input/output channel counts
if (outputList[0].length != this.channels) {
this.channels = outputList[0]?.length || 0;
configure();
}
let outputBlockSize = outputList[0][0].length;
let memory = wasmModule.exports ? wasmModule.exports.memory.buffer : wasmModule.HEAP8.buffer;
// Buffer list (one per channel)
let inputs = inputList[0];
if (!currentMapSegment.active) {
outputList[0].forEach((_, c) => {
let channelBuffer = inputs[c%inputs.length];
let buffer = new Float32Array(memory, this.buffersIn[c], outputBlockSize);
buffer.fill(0);
});
// Should detect silent input and skip processing
wasmModule._process(outputBlockSize, outputBlockSize);
} else if (inputs?.length) {
// Live input
outputList[0].forEach((_, c) => {
let channelBuffer = inputs[c%inputs.length];
let buffer = new Float32Array(memory, this.buffersIn[c], outputBlockSize);
if (channelBuffer) {
buffer.set(channelBuffer);
} else {
buffer.fill(0);
}
})
wasmModule._process(outputBlockSize, outputBlockSize);
} else {
let inputTime = currentMapSegment.input + (outputTime - currentMapSegment.output)*currentMapSegment.rate;
let loopLength = currentMapSegment.loopEnd - currentMapSegment.loopStart;
if (loopLength > 0 && inputTime >= currentMapSegment.loopEnd) {
currentMapSegment.input -= loopLength;
inputTime -= loopLength;
}
inputTime += this.inputLatencySeconds;
let inputSamplesEnd = Math.round(inputTime*sampleRate);
// Fill the buffer with previous input
let buffers = outputList[0].map((_, c) => new Float32Array(memory, this.buffersIn[c], this.bufferLength));
let blockSamples = 0; // current write position in the temporary input buffer
let audioBufferIndex = 0;
let audioSamples = this.audioBuffersStart; // start of current audio buffer
// zero-pad until the start of the audio data
let inputSamples = inputSamplesEnd - this.bufferLength;
if (inputSamples < audioSamples) {
blockSamples = audioSamples - inputSamples;
buffers.forEach(b => b.fill(0, 0, blockSamples));
inputSamples = audioSamples;
}
while (audioBufferIndex < this.audioBuffers.length && audioSamples < inputSamplesEnd) {
let audioBuffer = this.audioBuffers[audioBufferIndex];
let startIndex = inputSamples - audioSamples; // start index within the audio buffer
let bufferEnd = audioSamples + audioBuffer[0].length;
// how many samples to copy: min(how many left in the buffer, how many more we need)
let count = Math.min(audioBuffer[0].length - startIndex, inputSamplesEnd - inputSamples);
if (count > 0) {
buffers.forEach((buffer, c) => {
let channelBuffer = audioBuffer[c%audioBuffer.length];
buffer.subarray(blockSamples).set(channelBuffer.subarray(startIndex, startIndex + count));
});
audioSamples += count;
blockSamples += count;
} else { // we're already past this buffer - skip it
audioSamples += audioBuffer[0].length;
}
++audioBufferIndex;
}
if (blockSamples < this.bufferLength) {
buffers.forEach(buffer => buffer.subarray(blockSamples).fill(0));
}
// constantly seeking, so we don't have to worry about the input buffers needing to be a rate-dependent size
wasmModule._seek(this.bufferLength, currentMapSegment.rate);
wasmModule._process(0, outputBlockSize);
this.timeIntervalCounter -= outputBlockSize;
if (this.timeIntervalCounter <= 0) {
this.timeIntervalCounter = this.timeIntervalSamples;
this.port.postMessage(['time', inputTime]);
}
}
// Re-fetch in case the memory changed (even though there *shouldn't* be any allocations)
memory = wasmModule.exports ? wasmModule.exports.memory.buffer : wasmModule.HEAP8.buffer;
outputList[0].forEach((channelBuffer, c) => {
let buffer = new Float32Array(memory, this.buffersOut[c], outputBlockSize);
channelBuffer.set(buffer);
});
return true;
}
}
registerProcessor(audioNodeKey, WasmProcessor);
}
/**
Creates a Stretch node
@async
@function SignalsmithStretch
@param {AudioContext} audioContext
@param {Object} options - channel configuration (as per [options]{@link https://developer.mozilla.org/en-US/docs/Web/API/AudioWorkletNode/AudioWorkletNode#options})
@returns {Promise<StretchNode>}
*/
SignalsmithStretch = ((Module, audioNodeKey) => {
if (typeof AudioWorkletProcessor === "function" && typeof registerProcessor === "function") {
// AudioWorklet side
registerWorkletProcessor(Module, audioNodeKey);
return {};
}
let promiseKey = Symbol();
let createNode = async function(audioContext, options) {
/**
@classdesc An `AudioWorkletNode` with Signalsmith Stretch extensions
@name StretchNode
@augments AudioWorkletNode
@property {number} inputTime - the current playback (in seconds) within the input audio stored by the node
*/
let audioNode;
options = options || {
numberOfInputs: 1,
numberOfOutputs: 1,
outputChannelCount: [2]
};
try {
audioNode = new AudioWorkletNode(audioContext, audioNodeKey, options);
} catch (e) {
if (!audioContext[promiseKey]) {
let moduleUrl = createNode.moduleUrl;
if (!moduleUrl) {
let moduleCode = `(${registerWorkletProcessor})((_scriptName=>${Module})(),${JSON.stringify(audioNodeKey)})`;
moduleUrl = URL.createObjectURL(new Blob([moduleCode], {type: 'text/javascript'}));
}
audioContext[promiseKey] = audioContext.audioWorklet.addModule(moduleUrl);
}
await audioContext[promiseKey];
audioNode = new AudioWorkletNode(audioContext, audioNodeKey, options);
}
// messages with Promise responses
let requestMap = {};
let idCounter = 0;
let timeUpdateCallback = null;
let post = (transfer, ...data) => {
let id = idCounter++;
return new Promise(resolve => {
requestMap[id] = resolve;
audioNode.port.postMessage([id].concat(data), transfer);
});
};
audioNode.inputTime = 0;
audioNode.port.onmessage = (event) => {
let data = event.data;
let id = data[0], value = data[1];
if (id == 'time') {
audioNode.inputTime = value;
if (timeUpdateCallback) timeUpdateCallback(value);
}
if (id in requestMap) {
requestMap[id](value);
delete requestMap[id];
}
};
return new Promise(resolve => {
requestMap['ready'] = remoteMethodKeys => {
Object.keys(remoteMethodKeys).forEach(key => {
let argCount = remoteMethodKeys[key];
audioNode[key] = (...args) => {
let transfer = null;
if (args.length > argCount) {
transfer = args.pop();
}
return post(transfer, key, ...args);
}
});
/** @lends StretchNode.prototype
@method setUpdateInterval
*/
audioNode.setUpdateInterval = (seconds, callback) => {
timeUpdateCallback = callback;
return post(null, 'setUpdateInterval', seconds);
}
resolve(audioNode);
}
});
};
return createNode;
})(SignalsmithStretch, "signalsmith-stretch");
// register as a CommonJS/AMD module
if (typeof exports === 'object' && typeof module === 'object') {
module.exports = SignalsmithStretch;
} else if (typeof define === 'function' && define['amd']) {
define([], () => SignalsmithStretch);
}