頓挫中。僕の調べ方が悪いのかもしれませんが、FFTとは無関係なところで悩み中。今日は文字だらけですんません。
プレイバックの問題
ライブラリ「minim」はFFTが簡単に出来るものの、問題はプレイバック部分、特に再生終了イベントを受け取れない(→[Minim] Tell if an AudioPlayer finishes playing?)。minimの作者さん本人が返事をしてますが先の10月にリリースされたバージョンでも改善が無いようです。
再生は勝手に止まるのでいいんです、でもその後、各GUIを初期状態に戻したり、もろもろの後処理が出来ないとすごく気分の悪いツールができあがるのがイヤ。
同じ機能を持つライブラリで「Ess」がありますが、こちらはFFTの結果をリニアで出してきます。例えばベースを22Hzとして220Hz、2,200Hz、、、22×10nの結果を得ることが出来ません。聞き取れない高周波成分の結果をたくさん出されたところで、ねぇ。
再生終了時の処理はメソッドaudioChannelDone(AudioChannel)を上書きすれば可能です。
解決するにはEssをプレイバック用、再生中のサウンドバッファをminim.FFTへ、って合わせ技かな?。
GUIのライブラリのこと
GUIに使用しているライブラリ「controlP5」も不足があるせいかマウスの各状態を得ることが出来ないでいます。レポジトリ上の開発途上な0.40のソース(Controller.java)を見ると、isMousePressed()でマウスの状態を取得できたり、mousePressed() 、mouseReleased()等のオーバーライド可能なメソッドが用意されているようです。でもコンパイルってどうするんだ?
って事で
Prosessing以外でも実現できるものが無いか調べ中。
ActionScript3にも「SoundMixer.computeSpectrum () 」ってのがありますね。
あとは、PureDataとか、vvvvとか、、、
MacOSXのQuartzComposerでもできるんですが、データの書き出し部分をObjective-Cで書かなきゃいけないのはちょっと、、、
続きは頓挫中の「見ちゃいやんバージョン」のソースです。以上の経緯があってまだ一番肝心なデータ書き出し等は実装されていません。すごく中途半端なので役には立たないですよ。
Minimは標準で入っていますが、ほかにcontrolP5が必要です。
mp3,AIFF,wavを開いて再生とスペクトルの表示ができます。
作るのが最終目的じゃなくって、これ使って映像を作りたいんですけどぉ!
続きを読む “とどこおるFFT” →