GENERATIVE GESTALTAUNG

Processingでかかれたアートてんこ盛り。中身はAbout – GENERATIVE GESTALTAUNGでチラ見できます、ソースコードも手に入ります。


中身はドイツ語です。読めないので絵をみて気に入ったものがあればソースコードをダウンロードして理解にするって感じです。

英訳版が出るらしいので待たれて見ては?

Generative Gestaltung(ドイツ語)[Amazon.co.jp]


無理矢理FFT

オーディオ終了時のコールバックが出来ないのでほったらかしにしてましたが、再生と同時にタイマーでカウントし終了させるようにして無理やり解決。オーディオとタイマーは非同期で進行するので終了のタイミングは全然正確では無いです、再生直後もうまくデータがとれないみたい。前後にノンモンを追加すれば問題なしですが。

完全に書き直したのでリアルタイムでFFTして結果を出力するだけで、プレイバックコントロール等はいっさいなし。そんなのは後でつけるとして、次は読み込み側のスクリプト。


とどこおるFFT

頓挫中。僕の調べ方が悪いのかもしれませんが、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”


まだまだだだ

台風18号が来てますね、大阪市内にも警報出てます。
「出社時、電車が運休なら休業です!」を今、全員に伝えたのでまずはひと安心。
電車が動き出したら?出社?、ってずぅ〜っと気にして待つのも時間の無駄ですしねぇ。

さて、「マスク出しときゃ、後でAfterEffectsでなんとかなるやろ」的なCGデザイナー脳が抜けず、適当なコードを書いては作り直してます。めんどくさ。

fftAnalize

minimってプレイバック&解析ライブラリを使ってますが、再生終了イベントをどうやって取得するのか分からんかったり、FFTで得られた縦軸(レベル)の単位ってなんだ?だったりで全然進みません!