【问题标题】:c++ FFT Beat detection library?c++ FFT Beat检测库?
【发布时间】:2011-01-16 16:38:41
【问题描述】:

我目前正在四处寻找一个好的全能节拍检测库/C++ 源代码,因为我发现使用本教程自己编写的节拍检测代码很难获得令人满意的结果: http://www.gamedev.net/reference/programming/features/beatdetection/

如果你想让它与任何类型的音乐一起工作,这尤其困难,所以我想知道是否已经有一些可用的东西?

谢谢!

【问题讨论】:

    标签: c++ audio analysis fft


    【解决方案1】:

    你可以试试奥比奥:http://aubio.org/

    它似乎在 Windows 中不起作用(至少对我来说,今天),但它在 OS/X 中起作用

    【讨论】:

      【解决方案2】:

      查看 Vamp 插件系统及其可用插件 (http://vamp-plugins.org/)。

      (来自网站) Vamp 是一个音频处理插件系统,用于从音频数据中提取描述性信息的插件

      QM 插件集似乎特别相关 (http://vamp-plugins.org/plugin-doc/qm-vamp-plugins.html)。

      【讨论】:

      • 是的,这些都是专门为它设计的。
      【解决方案3】:

      我可能遗漏了一些东西,但我不明白为什么您不能使用 GNU 科学图书馆的 FFT 例程(或任何其他类似 BOOST 中的例程)?

      【讨论】:

      • 我正在寻找一个节拍检测,它使用 FFT 作为输入并检测是否在某个范围内有新的节拍。如果我没记错的话,您提供的库“只是”FFT 例程?
      • 要检测“节拍”或基本上是周期性尖峰,那么您只需要 FFT 吗?
      • 是的,到目前为止,在我看到的所有节拍检测实现中,您基本上将 FFT 与之前的一帧进行比较,并且可能对其运行一些平滑函数以消除任何类型的噪声。那么如果差异超过某个动态阈值,您就有了节拍。
      • 没错。您看到的应该是周期图,尖峰表示“节拍”。这很容易做到,但使用 BOOST 或 GNU GSL 中的 FFT 例程是起点。
      • 是的,即使我使用 FFTW,基本上我也已经这样做了。无论如何,问题是很难让它以一般的方式工作,所以我想知道是否有一些已经完成的东西可能会更好。无论如何感谢您的帮助!
      【解决方案4】:

      啊,吸血鬼。如果只有有趣的那些是实时工作的。

      user240137,我不知道你是否真的很喜欢“接受答案”,但在查看 Vamp 之后,我发现了 Aubio (aubio.org),并且发现将其功能破解到我的项目中更容易实时工作(如果那是你所追求的)。

      最后:如果您真的想处理自己的 FFT,请使用 KissFFT 作为 FFTW 的更简单替代方法。

      【讨论】:

        【解决方案5】:

        OnsetsDS - 实时音乐开始检测 C/C++ 库http://onsetsds.sourceforge.net/

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2011-09-23
          • 1970-01-01
          • 2014-07-11
          • 2023-03-19
          • 2011-05-28
          • 1970-01-01
          • 2010-12-13
          • 2012-03-25
          相关资源
          最近更新 更多