33 lines
876 B
TypeScript
33 lines
876 B
TypeScript
interface AudioWorkletProcessor {
|
|
readonly port: MessagePort;
|
|
process(
|
|
inputs: Float32Array[][],
|
|
outputs: Float32Array[][],
|
|
parameters: Record<string, Float32Array>
|
|
): boolean;
|
|
}
|
|
|
|
declare let AudioWorkletProcessor: {
|
|
prototype: AudioWorkletProcessor;
|
|
new (options?: AudioWorkletNodeOptions): AudioWorkletProcessor;
|
|
};
|
|
|
|
declare function registerProcessor(
|
|
name: string,
|
|
processorCtor: (new (
|
|
options?: AudioWorkletNodeOptions
|
|
) => AudioWorkletProcessor) & {
|
|
parameterDescriptors?: AudioParamDescriptor[];
|
|
}
|
|
): undefined;
|
|
|
|
class AudioProcessor extends AudioWorkletProcessor {
|
|
process (inputs: Float32Array[][], outputs: Float32Array[][], parameters: Record<string, Float32Array>) {
|
|
console.log(inputs);
|
|
console.log(outputs);
|
|
console.log(parameters);
|
|
return true
|
|
}
|
|
}
|
|
|
|
registerProcessor('audio-processor', AudioProcessor)
|