ちょっとネタを思いついたのでProcessingでの3Dスタディを目的とした動画生成に挑戦してみました。3Dへの挑戦はなんとまだ二度目というていたらく。音楽は旧作“Slanted Spiral Staircase”。
複雑なことはやってなくて、再生音声を高速フーリエ変換してボリュームの平均(MinimのFFT#getAvg)を透明度に、もっともおおきいボリュームの周波数帯域インデックスを彩度にマッピングさせた球をZ軸のマイナス位置に生成、フレームごとに後方に消えるまでプラス方向に移動させてます。それだけだと単調なので、右チャンネルと左チャンネルをスクリーン中央を軸に対抗に配置させ、テンポにあわせた時計回りへの回転も付加。フレームレートを上げると螺旋を描く様子がよく見えてくるのですが、リアルタイム動画生成の処理の限界でこの動画は15fps。残念。スクリーンのサイズも16:9ではありますが生成時サイズは640x320で、動画編集の際に二倍に拡大してます。Processingだとこのへんが限界ですかねえ。まあいままででいちばんビジュアライザーっぽくなったような気がするのでよしとしますか。
なお静止画を出力してあとでつなげる動画作成方法はリアルタイム処理だと速度を出せないので今回もProcessingのバージョンは1.5。2系はリアルタイム動画生成機能をサポートする気がなさそうにも思えるので、この先どうするかちょっと悩みどころ。フレームレートとして18を設定すると微妙に長くなる現象も確認しましたし……もっともこれは動画の仕様の可能性もありますが。
せっかくなので動画作成ももうすこしちゃんとやろうかなあと思わないでもない今日このごろ。またネタを思いついたら挑戦します。
(これまでの作品は「はりぼてミュージアム」からどうぞ)
2015-02-28(Sat)追記: 動画作成に使用したコードを整理して公開しました。