javascript-预计算的Web音频API时域和频谱图可视化
作者:互联网
我正在使用各种振荡器/滤波器通过Web音频api合成声音,并且具有时域和频谱图可视化效果,这些可视化效果在振荡器播放时实时运行(类似于here和here).
但是,我希望能够在音频网络运行一定时间之前,基于音频网络创建一个初始的预先计算的可视化效果,以便用户可以在播放之前查看网络的声音.这是可能的还是有办法加快时间以快速生成可视化效果?
解决方法:
使用OfflineAudioContext,可以异步地返回PCM缓冲区.从中计算窗口化的RMS值(或仅使用时域,取决于您要执行的操作),然后将其放在a或其他值上.
OfflineAudioContext使您可以在计算机运行时尽快运行图形,它是AudioContext的替代品,除了三个不能使用的节点(MediaStreamAudioDestinationNode,MediaStreamSourceNode和MediaElementAudioSourceNode),因为MediaStream是真实的,时间对象:如果不实时渲染,则它们毫无意义.
它是这样的:
var off = new OfflineAudioContext(2 /* stereo */,
44100 /* length in frames */,
44100 /* samplerate */);
/* do your thing: setup your graph as usual */
off.createOscillator(...);
...
...
/* This is called when the graph has rendered one
* second of audio, here: 44100 frames at 44100 frames per second */
off.oncomplete = function(e) {
e.renderedBuffer; /* is an AudioBuffer that contains the PCM data */
};
/* kick off the rendering */
off.startRendering();
标签:web-audio,visualization,audio,javascript 来源: https://codeday.me/bug/20191121/2052799.html