sound-visualizer
Version:
45 lines (42 loc) • 1.13 kB
JavaScript
import {
startAnalysis
} from "./chunk-XPCAL55N.mjs";
import {
clearCanvas
} from "./chunk-GVWDEUAU.mjs";
import {
frequencyValue
} from "./chunk-OLMUZMP2.mjs";
import {
drawContinuousWave
} from "./chunk-COBSMVXT.mjs";
// src/continuous/main.ts
function continuousVisualizer(audio, canvas, drawOptions) {
var _a;
let animationFrameId = null;
const audioHistory = new Array((_a = drawOptions == null ? void 0 : drawOptions.slices) != null ? _a : 100);
const { analyse, disconnect } = startAnalysis(audio);
function start() {
if (animationFrameId !== null)
cancelAnimationFrame(animationFrameId);
function tick() {
audioHistory.push(frequencyValue(analyse()));
drawContinuousWave(canvas, audioHistory, drawOptions);
animationFrameId = requestAnimationFrame(tick);
}
animationFrameId = requestAnimationFrame(tick);
}
function stop() {
if (animationFrameId !== null)
cancelAnimationFrame(animationFrameId);
disconnect();
}
function reset() {
stop();
clearCanvas(canvas);
}
return { start, stop, reset };
}
export {
continuousVisualizer
};