【问题标题】:web audio API and filter coefficients网络音频 API 和滤波器系数
【发布时间】:2013-01-12 09:12:15
【问题描述】:

我正在学习使用web audio api 来合成和处理声音。我看到我可以使用 BiquadFilterNode 类,但它只允许指定定义的过滤器类型之一 ("lowpass", "highpass", "bandpass", "lowshelf", "highshelf", "peaking", "notch", "allpass") 并通过此类过滤器的元参数控制它:Qgain 和 @987654328 @。

有没有办法指定数字滤波器的实际系数?换句话说,对于以下形式的过滤器:

       b_0 + b_1*z^(-1) + b_2*z^(-2)
H(z) = -----------------------------
       1 + a_1*z^(-1) + a_2*z^(-2)

我可以以某种方式直接指定b_0, b_1, b_2, a_1, a_2 的值吗?

我问是因为虽然预定义的过滤器类型非常方便,但它们不一定涵盖所有用例。通过指定系数,可以实现一阶滤波器、参数部分等。

【问题讨论】:

  • 这似乎是不可能的。但是here 写成Multiple BiquadFilterNode filters can be combined to form more complex filters。也许这有帮助..否则你必须自己实现过滤器。
  • 感谢您的建议@redreggae。我知道我可以直接在 JavaScript 中实现过滤器(使用ScriptProcessorNode),但这非常低效,我很确定所需的一切都已经在BiquadFilterNode 的低级别实现了。只是通过 API 公开系数的问题。

标签: signal-processing web-audio-api


【解决方案1】:

目前还不可能,但要添加一个简单的 API。

至少,很明显我们需要添加对一阶过滤器的支持。

【讨论】:

  • 好吧,如果 WebAudio 背后的人告诉我不可能,我想是不可能的。我知道您可能在 WebAudio 上还有很多更重要的东西要处理,但是对于它的价值,请相信我对直接公开滤波器系数的投票 ;-)
【解决方案2】:

这是不可能的。 WG 提出了一个完全独立的 DSP API 的提案,但还没有完全成熟。

【讨论】:

  • 感谢分享!我不知道有关于 DSP API 的提议,但这听起来很酷。也就是说,为这个特定用例使用另一个 API 可能有点过头了,因为这可以很容易地添加到 webAudio API(参见上面的@ChrisRogers 评论)
猜你喜欢
  • 1970-01-01
  • 2015-03-26
  • 1970-01-01
  • 1970-01-01
  • 2013-09-22
  • 2015-02-10
  • 1970-01-01
  • 1970-01-01
  • 2022-01-07
相关资源
最近更新 更多