【发布时间】:2015-01-25 20:20:35
【问题描述】:
我正在完成关于声学光线追踪的硕士论文,使用 WebGL 作为 GPU 马力的接入点,并使用 WebAudio 来驱动声卡。让我们假设,光线追踪器的实现使得它每帧都提供更新的脉冲响应,而图形渲染引擎以每秒 30 帧的速度运行。因此,一个房间会显示在屏幕上,并且可以通过实时图形和声学信息在该房间中移动。
我了解脉冲响应 (IR) 以及要播放的音频信号 (x) 必须分成块以进行循环卷积。这需要扩展到动态卷积核。
现在出现一个令人费解的部分:在当前帧开始的音频信号 x 的声音块以当前 IR 开始。在下一帧中,更新的 IR 可用,因此这个新 IR 的一部分需要与 x 的第一个块进行卷积(因为它仍然在那个房间里响起),并且 x 的第二个块也必须与新 IR 的开始。 (插图很快就会出现)
框架在浏览器(Chrome)中运行,所以这个卷积的东西需要在javascript中完成。我是 WebAudio 的新手,但由于对 AudioWorkers 的支持仍然很出色,我需要以其他方式实现它。由于这是一项繁重的处理任务,有没有人有想法用 javascript 解决这个问题以实时渲染音频链?
【问题讨论】:
标签: javascript signal-processing web-audio-api