将混响添加到音频中会使其失真且响亮

问题描述 投票:0回答:1

我为游戏制作了一个网站,可以录制和共享音乐,一些用户问我是否可以添加混响选项来打开/关闭混响(这可以模拟在洞穴内),我在Google上搜索了一下[ C0]老实说,我对此并不太了解,但是我设法使其正常运行,最终我做到了:

found about the webAudio api reverb with the convolver node.

变量“ buf”是已解码的音频文件,它似乎确实可以工作,但是它确实很大且失真,我有一个演示const source = a_ctx.createBufferSource() source.buffer = buf source.playbackRate.value = pitchKey; if(reverbToggled){ let convolver = a_ctx.createConvolver(); convolver.buffer = buf source.connect(convolver) convolver.connect(a_ctx.destination) }else{ source.connect(a_ctx.destination) } source.start(0) ,要查看开/关混响之间的区别,只需按“ R”按钮在右侧,然后按中间的注释按钮。

我可能在convolverNode的实现中犯了一些错误,但是我不完全知道是什么原因导致的,如何解决?

javascript audio web-audio-api
1个回答
0
投票

卷积器当然可以用于混响,但是您要提供的“缓冲区”不应与您正在播放的音频相同。相反,应该给它一个混响内核(或脉冲响应),可以预先计算或实际录音。它对应于空间对声音脉冲的反应。您可能可以在网上找到合适的免版税内核,尽管我自己从来没有自己找过。

有关卷积混响here的更多信息。

© www.soinside.com 2019 - 2024. All rights reserved.