第九回
本日のtoeファイル ← ダウンロードしておいてください
演習
こういう感じものが作りたい!というものをどしどし相談してください。
ちなみに、7/9-13までが前期試験期間とのことで、7/4か7/11目処で何かやろうかなと考えています。
最終発表は後期にやるにしても、現段階でできる範囲で制作にチャレンジしてみるのもいいかなと思うので、やりましょう!
あと、諸々連絡事項用に何かメッセージを送れるものを作りたいです。Facebookグループとか?
OSC
Maxなどをやっていた人は使ったことがあると思いますが、Processing、Max、openFrameworksなどなどで使えるネットワークごしにメッセージを送れるシステムです。
TouchDesignerでは、CHOPとDATの両方でOSCを扱えます。
両者の違いとしては、CHOPのほうが簡単に扱えますが、設定によってはメッセージをとりこぼしたりするので、シーンチェンジなどのメッセージはDATを使ったほうが確実です。
パラメーターのコントロールや音量のデータなど、多少とりこぼしても問題ないものはCHOP、確実に届かないと困るメッセージはDATを使う、という感じになります。
MaxとOSCのやりとり
/project1/from_to_max
を参照
OSC In CHOP
を使うとお手軽にOSCを受信できます。
OSCメッセージのアドレス (/test
のようなもの) から、先頭のスラッシュを外したものがそれぞれチャンネル名になります。
また、/multi 10. 20. 30.
のような、複数のパラメータを持ったメッセージは自動的に multi1 multi2 multi3
のように末尾に数字がついたチャンネル名に変換されます。
Trail CHOP
とちょっとした小ネタ → CHOPのグラフをひとまとめにする
数値変化のないメッセージのハンドリング
Maxでよく使われる bang
メッセージなど、数値変化がなくてただメッセージが来たのをトリガーにする場合には OSC In CHOP
は使えないので。OSC In DAT
を使います。
OSC In DAT
では、OSCを受信した時に自動的に作られる Text DAT
の中の onReceiveOSC
が呼び出されます。そこでアドレスをif文で振り分けて使うのが、OSC In DAT
の一般な使い方です。
def onReceiveOSC(dat, rowIndex, message, bytes, timeStamp, address, args, peer):
if address == '/from_max3':
# DO SOMETHING HERE...
pass
OSCの送信
OSCの送信も、OSC Out CHOP
を使うのが簡単です。チャンネル名がOSCアドレスに自動的に変換されるので、ほとんど何も考えずに使うことができます。
OSC Out DATを使ったOSCの送信
/project1/osc_out_dat
を参照
OSC Out DAT
は基本的にPythonから呼び出す形でOSCを送信するためのものです。
op()
関数でオペレーターのオブジェクトを取得して、sendOSC('OSCアドレス', [引数のリスト])
メソッドを呼び出すことでOSCを送ります。
CHOPと比べると、例えばアーギュメントの数が不定なもの、毎フレームごとではなく、一回だけトリガー的に送りたい時など時に使います。
Ableton Liveとの連携
授業の中でやるかな?と思ったけどAbleton Liveを使っている人がどれほどいるか微妙だったのでとりあえず動画を撮りました。興味のある人はチャレンジしてみてください!