【TouchDesigner】音の周波数を分割して取り出す
すぐ忘れるからメモ。
こちらの動画を参考にしました。
1. リサンプルする
Audio File In chop
で音を読み込んだらAudoio Spectram chop
につないで低周波〜高周波をマッピングする。
Audoio Spectram chop
のOutput Length
をSet Length Manually
にして、予めサンプル数を減らしておく。
またここで極端に減らすと不具合が起こるらしく、resampleでやるのが無難らしい。
で、情報をみるとSpectramで設定されているものと同じ2048の点で表している。
ここまで利用することはないので、Resample chop
に繋いでサンプルの数を減らす。
commonタブのTime SliceをOffにする。
さらにResampleタブのMethodをNew Rate, New Interval
に。Unit ValuesをAbsolute
に。
StartとEndの設定をseconds
からsample
にしたら、好きな量のサンプルを設定する(今回は600にしたかったので0~599)。
ちなみにMethodについてはリファレンスを見ると下記のように書いてある。
正直よくわからない。
New Rate, New Interval / newint サンプルレートとCHOPの伸縮の両方を変更します。
リサンプル後の頂点を取り出す
Resample chop
をInfo chop
に食わせ、Select chop
でlengthだけを取り出す。
これを次のTrim chop
で利用する。
Trimで音域ごとに分ける
Resample chop
から3つTrim chop
を繋いだら、先ほどのSelect chop
のlengthをから切り出す部分を指定する。
Unit ValuesをAbsolute
にし、各StartとEndを次のように設定。
# High op('select1')['length'] * 2/3 # start op('select1')['length'] # end # Mid op('select1')['length'] / 3 # start op('select1')['length'] * 2/3 # end # Low 0 # start op('select1')['length'] / 3 # end
最後にNull chop
にそれぞれつないで完了。
あとがき
前述の動画のResample部分は比嘉 了さんのブログを参考にしたとのこと。
動画もブログも大変参考になりました。