第11回: 音反応
オーディオの入出力
/project1/AUDIO_IO
音の入力には、Audio Device In CHOP
、または Audio File In CHOP
を使います。
Audio Device In CHOP
はリアルタイムにオーディオデバイスへ入力された音のデータ、 Audio File In CHOP
はオーディオファイルから読み込んだ音のデータを扱いますが、両者から得られる音のデータはだいたい同じようなものです。
なので、プロジェクトを作る段階では Audio File In CHOP
を使って、いざ本番となった時に Audio Device In CHOP
へつなぎかえて使うといった使い方はオススメです。
バッファサイズ
Audio Device In CHOP
、 Audio Device Out CHOP
には Buffer Length
のパラメーターがあり、それぞれ音の入力/出力の時用の内部メモリのサイズを決められるようになっています。
デフォルトの状態だと0.1秒や0.15秒が指定されているのですが、これはリアルタイムというにはあまりにも遅い数値になっています。両方とも1Fか、それで音にプチプチといったノイズが入るようなら2~3F程度にしましょう。
また、Windowsの場合、接続されているオーディオデバイスによっては Driver
として ASIO
が選択できる時があります。ASIO
のほうがデフォルトのものよりも全然性能がいいので、可能であればそちらを選ぶようにしてください。
音量の検出
/project1/ANALYZE
Audio Device In CHOP
や Audio File In CHOP
から出力されるデータはオーディオの生の波形になっており、そのままだと映像表現の要素としては使いにくいものです。生の波形から音量のデータに変換するとだいぶ使いやすくなります。
音量のデータに変換するには、Analyze CHOP
を使います。
Analyze CHOP
は、入力されたサンプル全体に対して簡単な解析を行うオペレーターです。今回のような音量のデータが欲しい場合には、Analyze > Function
のパラメーターを Maximum
か RMS Power
を選びます。
音量に反応させる
/project1/SIMPLE_AUDIO_REACTIVE
Analyze CHOP
を使って音量が取得できたので、それを使って簡単なオーディオリアクティブのセットアップをつくってみます。とりあえず簡単にボックスのスケール値にあてはめてみました
やってみよう
Analyze CHOP
と Rename CHOP
の間に他のオペレーターを入れると動きの印象がどう変化するか試してみましょう。
Lag CHOP
Filter CHOP
Math CHOP
Limit CHOP
などが変化がわかりやすいと思います
また、他のパラメーターにアサインするとどういった動きになるかも見てみてください。
帯域別に処理する
/project1/AUDIO_FILTER
Audio Filter CHOP
を使うと、オーディオ信号にバンドパス、ハイパスなどのフィルターをかけることができます。
フィルターをかけた後のオーディオデータに対して Analyze CHOP
をかけることで、特定の帯域の音量をデータとして取り出すことができます。
フィルターするべき帯域を探す時は、 Audio Filter CHOP
の後の音を Audio Device Out CHOP
につないで聞きながら調整するといいでしょう。
Trail
/project1/TRAIL_RESAMPLE
Trail CHOP
はこれまでにも値のログを表示するといった用途で何回か使ってきましたが、これはアニメーションにも応用できます。
例えば、Trail CHOP
の出力を CHOP to TOP
に接続するとそのまま画像に変換され、波のようなアニメーションの画像になります。
それをさらに Pallet
の中の Image Filters > cartesianToPolar
を通すことで音に反応する波紋のようなアニメーションに変換ができます。
cartesianToPolar
は、入力されたTOPを極座標系に変換するもので、ひらたく言うと直線っぽい絵を入れると円っぽい絵に変換してくれるものです。
やってみよう
Trail CHOP
の Window Length
を変更してアニメーションがどう変化するかを見てみてください。
また、Transform TOP
の回転角やスケールを調整したり、TOPのエフェクトを加えることでどういった変化がおこるか色々ためしてみてください。
Trail 2
/project1/TRAIL_INSTANCE
Trail CHOP
ではCHOPのデータが出力されます。であれば、前回の授業でやったインスタンシングを使ったアニメーションを作ることもできます。
このサンプルではインスタンシングのパラメーターに大きさや透明度をわりあてています。
Trail CHOP
の Resample
パラメーターを指定することで出力するサンプル数を強制的に指定できます。これはインスタンスの数が増えすぎないように調整する時に役立ちます。
やってみよう
Trail CHOP
の Window Length
を変更してアニメーションがどう変化するかを見てみてください。
インスタンシングにわりあてるパラメーターを変更してみて、どういう感じになるか試してみてください。
実習
今日やった音の入力、フィルター、音量の解析などを使って、何か音に反応するグラフィックを作ってみてください!
音源を変えてみる、マイクの音に反応させるなどしてもいいかもしれません