もっと大きな問題があった…。忘れてた…。
256点サンプルでFFTを掛けると、単純計算なら
256個のサンプルを取り込むまでキチンと周波数の
解析が出来ないのでは?ということ。
言い換えると、256点取り込むのにどのくらいの
時間が掛かるのか… それが問題。
ナイキスト周波数を800Hzとするなら、サンプリング
周波数は1600Hz。ってことは、
(1÷1600Hz)×256点=0.16秒
弦を弾いてから256点取り込み終わるまで0.16秒
かかるということ。うーん。FFTをどれだけ早く
処理し終えても、その元ねたであるサンプリングが自体
が0.16秒遅延するのか…うーん。
256点サンプルとする時点で遅延の長さは避けられない
わけなんだなぁ。うーん。
SRAMが潤沢に使えるならアレコレ選択肢はあるけど、
4KBの制約は結構でかいなぁ。
もっと工夫が要るのかな?
1本の弦からの信号をさらに高音・低音に分けて
サンプリング、そいつらにそれぞれFFTを掛けるとか。
いや、もしかしたら128点や64点に減らすことで
パート毎のSRAM消費量は減らしつつ、周波数分解能
は据え置きで、遅延時間だけ短くすることもできる
のかなぁ?リクツから言えば…。
制御はやたらと面倒くさくなるだろうけど。1つの
弦から複数に分けて読み込むわけだから、各回路(LPF)
も、各ナイキスト周波数にあわせていっぱい用意する
必要ができちゃうからなぁ…ソフト的にもハード的にも
結構メンドウ。
ふと、クリップ式のクロマチックチューナーを探してみる。
こいつらも、結構細かい周波数分解能が必要なはず。
中身はデジタル回路のFFTだろうと。
大きさから考えると、かなり小さいマイコンで処理
してそうな感じ。なんか糸口がありそうな…
ただよく考えると、チューナーってそもそも遅延時間
は結構大きかったような。
うーん。256点どころではなく、もっとたくさんの
サンプルを取って、時間掛けて変換しても問題ない
製品だもんなぁ。目指す方向がちょっと違うかも。
ROLANDのGR-20GKのレビューも見てみる。
うーん、「微妙な遅延」かぁ。微妙な遅延があるっていう
のが製品レベルでも存在するってことか。
そう簡単には片付かないってことかもしれんなぁ…
頑張ろう。
|