用途:复刻 2000 年代经典音乐可视化风格(Milkdrop、AVS、Geiss),并用现代 WebGL 与 Web Audio API 实现。适合做 Milkdrop 风格迷幻可视化、Butterchurn 集成、全屏沉浸式音乐体验、实时节拍检测与预设切换。不适合简单频谱柱状图、静态波形、视频编辑、非音频生成艺术,以及音频播放/流媒体问题。
主要能力:Butterchurn(WebGL 版 Milkdrop,MIT 许可,兼容原版预设,npm 包 butterchurn、butterchurn-presets);Web Audio API AnalyserNode 提取 FFT/波形;GLSL 片元着色器实现音频响应效果;预设系统与过渡混合。
用法要点:创建可视化器并连接音频节点,例如 butterchurn.createVisualizer(audioContext, canvas, {width, height, pixelRatio}),再 visualizer.connectAudio(audioNode) 与 visualizer.loadPreset(preset, 2.0)。FFT 设置 analyser.fftSize = 2048、smoothingTimeConstant = 0.8,并用 getByteFrequencyData 读取数据。着色器可将音频数据作为 1D 纹理传入,用 uniform 传递 bass/mid/treble。
限制与注意事项:AudioContext 初始为 suspended,需用户交互后 await audioContext.resume();FFT 频段为线性而人耳为对数,需做对数映射;需设置平滑避免抖动;requestAnimationFrame 需在卸载时 cancelAnimationFrame 清理;画布尺寸需乘 devicePixelRatio 并处理 resize;着色器编译应在加载阶段完成以免阻塞主线程。性能上可降低 textureRatio、fftSize,避免渲染循环中更新 DOM。
资料还提供预设推荐与集成清单,但未提供具体收费、平台或效果保证信息。