【问题标题】:Adding reverb to audio makes it distorted and loud为音频添加混响会使其失真且响亮
【发布时间】:2020-06-08 15:13:43
【问题描述】:

我为一个游戏制作了一个网站来制作唱片和分享音乐,一些用户问我是否可以添加一个混响选项来打开/关闭混响(这可以模拟在洞穴中),我搜索了一下,然后found about the webAudio api reverb with the convolver node. 老实说,我对此不太了解,但我试图让它发挥作用,最后我做到了:

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)

变量“buf”是解码后的音频文件,它似乎确实可以工作,但它确实响亮且失真,我有一个演示here,要查看开/关混响之间的区别,只需按“R”按钮,然后按中间的笔记按钮。

有可能我在 convolverNode 的实现中犯了一些错误,但我不知道是什么原因造成的,我该如何解决?

【问题讨论】:

    标签: javascript audio web-audio-api


    【解决方案1】:

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

    更多关于卷积混响on Wikipedia.

    【讨论】:

      猜你喜欢
      • 2010-11-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多