音楽を再生するだけの動画などでよく使われる、装飾用の波形表示(オシロスコープ)や周波数スペクトル表示。いつの間にかREAPERのVideo Processor(以下VP)プリセットに追加されていました。

波形データを使った画像処理

そもそもオシロスコープや周波数スペクトルを表示出来るようにするためには、音声波形の情報をどっかから持ってこないといけないのですが、実はREAPER v5.97からそれを実現するための機能が実装されています。

JSFXの[JS: video sample peeker]が動画へ音声データを渡してくれるものになっており、このFXの次にVPを挿入してやることで、VP側で音声データを使った処理が行える訳です。

この順番でFXを挿入するとこんな感じ。
VP_VideoSamplePeeker01
2番目のFXはVideo Processorです(プリセットを切り替えたため名前が切り替わっている)。オシロスコープ・周波数スペクトルいずれもこの順で使うことが出来ます。


オシロスコープ

オシロスコープをもとにした映像効果を表示したい場合は、VPでプリセット [Synthesis: Decorative Oscilloscope with Blitter (requires JSFX video sample peeker)] を使用します。

[mode]パラメータで水平・垂直・極座標系の表示を切り替えられます。他にもいろいろパラメータがありますが、いじるとはっきり動きが変わるものが多く、さほど悩むことはないかと。
VP_OscilloscopeFX


周波数スペクトル

周波数スペクトルをもとにした映像効果を表示したい場合は、VPでプリセット [Synthesis: Decorative Spectrum Analyzer (requires JSFX video sample peeker)] を使用します。

このプリセットでは、同時に2つの方法で周波数スペクトルを表示出来ます。時系列のスペクトログラムが上側に、現在の瞬間的なスペクトルが下側に表示されます。[spectrogram size]の値を変えてやることで、画面上でのそれぞれのサイズの割合を変えたり一方だけを表示する事も可能。
VP_SpectrumFX



これらはシンプルなものではありますが、音声情報をもとにした映像効果を表示出来るようになったのはありがたいですね。

従来はVPが完全に描画プログラム用として閉じたシステムだったために、かなり制限が強い印象がありました。しかし、今回紹介したものを実現するための仕組み(具体的にはJSFXから共有メモリを使ってVPへデータを渡す仕組み)が新たに加わったことで、VPのプログラミングは恐らく別次元と言っていいほど自由度が高くなったと言ってもよいと思います(まぁそれを本気で使えば使うほどプログラミングが複雑化するのでアレですが)。

とはいえ、このあたりはまだしっかりと自分で検証出来てはいないので、どこまで出来るかはそのうちいいネタがあったら試してみたいですね。