节拍检测算法

时间:2014-06-22 23:06:39

标签: c# unity3d fft beat-detection

我正在研究一个涉及击败剔除的游戏的想法。我正在使用的引擎是Unity,我从来没有任何音频方面的经验,明智的编码,所以要温柔:)

我看过几篇文章并测试了几种算法,包括我自己的一些算法,但没有一种我们真的很成功也不够准确,而且我觉得我一直都在弄错了。

具体来说,我已经尝试过实现这里提出的想法: http://archive.gamedev.net/archive/reference/programming/features/beatdetection/index.html

虽然收效甚微,但我仍然认为我跳过某些东西并且我无法确定它。

如果有人可以提供有关如何制作实际精确节拍探测器的说明,我将非常感激。

编辑: 有些人对我遇到的麻烦感到困惑。这是我最近尝试检测节拍,我仍然不明白为什么它是如此不准确: http://pastebin.com/BD8y9tfz

在我用上面的链接i中使用(R1)方程来计算我拍摄的1024个样本的瞬时能量,然后我用(R3)计算来自包含所有先前的缓冲区的局部平均声能即时能量计算,然后我检查即时能量是否与平均局部声能相比有显着上升,如果存在,则表示存在节拍,如果没有,则程序继续照常进行。

(愚蠢的声誉系统不允许我发布链接和图片):)。

编辑2: 添加了R4,R5和R6的实现,但仍然没有工作。 添加了一些调试,由于某种原因,常量是荒谬的小数字,如:

Constant: -103416

Constant: -54793.28,我不知道为什么我会得到这些数字,有什么帮助?

0 个答案:

没有答案