第九回

https://tinyurl.com/TDWS-2018

本日の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を使っている人がどれほどいるか微妙だったのでとりあえず動画を撮りました。興味のある人はチャレンジしてみてください!

Ableton Liveと連携させる