UNPKG

sound-visualizer

Version:
45 lines (42 loc) 1.13 kB
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 };