0 と 1

物忘れは防げない

TouchDesigner小ネタ集 01 ~音に反応した表現~

オーディオビジュアルの基本は音ハメ

f:id:gounsx:20180928045648g:plain (音が無いとなにもわからんな・・・)

ということで音に反応するsphereの作り方。

今回使用するOP(オペレーター)

音解析用

  • Audio File In
  • Audio Band
  • Analyze
  • Trigger

おまけ

  • Audio Device Out
  • Audio Spectrum
  • Trail

ネットワーク全体図

f:id:gounsx:20180928044845p:plain

全体の流れ

やりたいこととしては、音源ファイルから曲を再生し、低音域が鳴っている瞬間に3Dモデルのサイズを大きくしてあげたい・・・!

心臓が脈打つような何かが作れます。

音解析用は全て特定の周波数帯の音に反応したものを作るためのOPで、おまけに書かれているものは視覚的にデバッグしやすくするためのOPです。

  1. Audio File Inで音源を再生
  2. Audio Device Outで音が聴こえるように
  3. 音源の周波数を見て、不必要な周波数帯を削りたいのでAudio Spectrumでモニタリング
  4. Audio Bandで不必要な周波数帯を削る
  5. Analyzeで入力信号の最大値を取得
  6. Trigger閾値を設定

不必要な周波数帯を削って低音成分だけ抽出

周波数ですが、ドラムだと大体こんな感じになります。

楽器 中心周波数
バスドラ 80 ~ 100Hz
スネア 800 ~ 1.2kHz
シンバル 220 ~ 12kHz

なので、Audio Bandで100Hz以下を軽く持ち上げてあげて、それ以上の周波数はがっつり削ってあげます。
そうすることでAnalyzeを繋いでキックだけ抽出することができるようになります。

Analyzeは入力信号の最大値を取得するのに使用します。
FunctionをMaximumに設定することで最大値を取得することができます。

今回はTrailから最大値が0から1.5ぐらいを行き来することがわかりました。
なので、TriggerTrigger Thresholdを0.9ぐらいに設定してあげることで低音が強くなった時に値が1を出力するようにします。

ここでコツとして、Attack LengthSustain LevelRelease Levelをを0に設定することで瞬間的に1を出力するようになります。

この辺もTrailを見ながら調整しましょう。

あとはTrailから出力される値をGeometoryのScaleなどに設定してあげれば完成です。
このままだと0から1で値が変動し、3Dモデルが見えなくなる瞬間が出てきてしまうのでお好みでMathRangeで値を0.5から1とかにずらしてあげるといいかもしれません。