编程语言
首页 > 编程语言> > javascript-预计算的Web音频API时域和频谱图可视化

javascript-预计算的Web音频API时域和频谱图可视化

作者:互联网

我正在使用各种振荡器/滤波器通过Web音频api合成声音,并且具有时域和频谱图可视化效果,这些可视化效果在振荡器播放时实时运行(类似于herehere).

但是,我希望能够在音频网络运行一定时间之前,基于音频网络创建一个初始的预先计算的可视化效果,以便用户可以在播放之前查看网络的声音.这是可能的还是有办法加快时间以快速生成可视化效果?

解决方法:

使用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