iPhone

 iPhoneで動かせたらなんか面白そうだとテストしていたら、結構いけそうだと分かりました。Macで動かすのもいいけど、いつでもどこでも思い立ったらすぐ練習、ということで、iPhoneの方が楽しそう。あんなこと、こんなことと。
 ただケータイということで、一番頭が痛いのがバッテリー。音声信号処理は、ものすごくたくさんの計算をしますので、ここがなんとかならないと話になりません。そもそも、iPhoneでは、vDSPというMacでなら利用できる超高速計算道具もないんです。
 ピッチを計るcorrelation(正確にはauto correlation)というアルゴリズムは、入力サンプルを高速フーリエ変換複素共役と2乗和、逆高速フーリエ変換することで高速に実行できることが分かりました。それでは高速フーリエ変換はどんなアルゴリズムなら一番効率がいいかというと、どうやらCooley-Tukeyというアルゴリズムが良さそうです。iPhoneのサンプルにあるaurioTouch(下の写真)というのも、このアルゴリズムでほとんど同じ実装方法を使っていました。

 ようやく基本周波数を拾う土台が固まってきたので、いよいよ音符の判定とアニメーションです。