WIP ノリノリで加速度センサを振ったときのテンポをJSで推定する

加速度センサをリズムに合わせて振ったときにBPM解析できるかなーと試してみたログです。

いっつもBeatDetectionはライブラリの中をちゃんと読まずにつかっていたので、一度しらべてみました。

調べると、自己相関 Autocorrelationというものがあるらしく、実装もシンプルだったので、jsで作ってみました。(ほぼjsfiddle参考)

from 自己相関 - Wikipedia

自己相関は、信号に含まれる繰り返しパターンを探すのに有用であり、例えば、ノイズに埋もれた周期的信号の存在を判定したり、 信号中の失われた基本周波数を倍音周波数による示唆に基づき同定するために用いられる。


サンプルURL
スマホからみてください

  • 灰色が、生の加速度センサ
  • 赤色が、ローパスフィルタを通した加速度センサ
  • 緑色が、自己相関関数とおしたグラフ

緑色が左肩上がりになるほど、一定の周期で動いてる(相関がつおい)みたいです。

加速度センサなのか、なんとなく精度はいまいち
シンプルなes6 練習と、master/docsのgithub pages 公開の実験も兼ねて作ってみました。

ソースはこちら

参考