音符持续时间

时间:2013-06-01 18:13:33

标签: c# c++ signal-processing fft

我实现了一种FFT算法,可以实时查找吉他音符。但现在我想看到音符持续时间。因此,在60 BPM(= 1拍/秒,4/4测量)的速度上,我想弄清楚我是否演奏了四分音符或2个八分音符或4个十六分音符。

假设我的播放速度不能超过十六分音符,因此我的FFT窗口将在250毫秒内完成。

现在,如果我点击音符C(四分音符),我将获得C C C C,如果我按下4次音符C(十六分音符),我也会得到C C C C

我如何判断它是四分之一还是十六分之一?

我在每个窗口尝试了音量,但没有运气。任何想法?

1 个答案:

答案 0 :(得分:1)

你可以寻找声音的'攻击'部分,这就是振幅峰值。

通过测量这些峰值之间的时间,您可以找到音符的持续时间。这无法检测到滑动和弯曲,但它可以用于拾取或手指敲击。