第二回
参考書籍
忘れてたけど、参考書籍など
- Visual Thinking with TouchDesigner プロが選ぶリアルタイムレンダリング&プロトタイピングの極意 - 日本語のTD本
- Matthew RaganのYoutube - TD界隈みんなの先生、マシューレーガンのチュートリアル
- Lynda - Learning TouchDesigner - 有料チュートリアルサイトですが結構いい
- (DE)SIGN – Design is a sense making with various media. - いい感じのサンプルが沢山ある
- Generative Design - 自然界の振舞いをプログラムを使って再現しよう、という試みの書籍。本はProcessingを使ったコードで記述されているけど、それをTDに移植したもの
簡単な楽器を作る
今日は、簡単な楽器を作ってみる ことを通じて、CHOPの扱い方、パラメーターの扱い方を解説していこうと思います。
CHOP
CHOP
では数字や、数字の配列を扱います。
コンピューターでは、音も数字が時系列に沢山並んだものとして扱いますので、TDでは音はCHOPのデータとして扱います。
色々なタイプのオペレーターがありますが、全部覚えなくても全然どうにかなります。音に関連するものをざっと見ていきましょう。
とりあえず音を出してみる
音を出すために、サウンドファイルを読み込んでオーディオデバイス(スピーカー)に接続しましょう。
Audio File In CHOP
と Audio Device Out CHOP
を作ってつなげてみてください。
audiofilein1
のオペレータの中に chan1
と chan2
という文字が見えます。チャンネルが2つあるので、このサウンドファイルはステレオだという事です。
CHOPが持っているデータ
CHOPはオーペレーターの中に チャンネル
サンプル
という単位でデータを持っています。
チャンネルはDAW的に言うとトラックに相当して、サンプルはそのまんまサンプルになります。
また、オペレーターごとに独立したサンプリングレートを持っています。
Math CHOP で音量をコントロールする
Math CHOP
を使うとチャンネルのデータに対して四則演算(足し算、引き算、かけ算、割り算) をすることができます。
さきほど作った Audio File In CHOP
と Audio Device Out CHOP
の間のコードを右クリック
して、Insert Operator
を選択するとオペレーターとオペレーターの間に新たなオペレーターを追加することができますので、Math CHOP
を追加しましょう。
Math CHOPには色々な機能があるのですが、まずは Mult-Add
タブの中の Multiply
の値をいじることで入力側のオペレーター全ての値に対してかけ算ができる事を覚えておいてください。
これで、サウンドファイルのボリュームがコントロールできるようになりました😆
Constant CHOPを作る
次に Constant CHOP
の使い方を学びましょう。
Constant CHOPを使うと、CHOPのチャンネル、サンプルのデータを手入力できます。
チャンネル数は名前を入れた分だけ増やすことができます。Constant CHOPはササっと作れるので、簡易的なパラメーター調整UIとして使う時が多いです。
Math CHOPでチャンネルごと、CHOPごとの四則演算をする
さきほどは Mult-Add
タブの中の Multiply
の値をいじってボリュームを制御しましたが、Math CHOPの別の機能をつかうと他のチャンネルや他のCHOPからパラメーターをコントロールすることができます。
Math CHOP
> OP
> Combile Channels
Combile CHOPs
のドロップダウンを変更することで、それぞれチャンネルごと、CHOPごとの四則演算が行えます。
別のCHOPの値でボリュームを変更する
次に、Math CHOP
の Combile CHOPs
の機能を使ってサウンドファイルのボリュームをコントロールしてみましょう。
手動でのボリュームのコントロールだけだと Mult-Add
> Multiply
の方が楽なのですが、他のCHOPの値でコントロールできるようにした方がアイデアによってもっとエフェクティブな事ができます。
例えば、LFO CHOP
から出力される値をかけ算するとその名の通りLFO、トレモロ効果を追加することができます。
TIPS: オペレータのつなぎかえについて
↑ の動画でさらっとやってしまったのですが、Math CHOP
など、複数のオペレーターを入力できるものはわりかしつなぎ替えが面倒だったりします。
そういう時は、つなぎ替えたいオペレーターのアウトプットをドラッグして、つなぎ替えたいケーブルまでもっていって、ケーブルが黄色くなったのを確認してからマウスを離すとケーブルのつけかえができます。
また、つなぎかえがよく発生しそうだなと思ったらあらかじめ Null
(得に何もしないオペレーター) を間にはさんでおくと接続がスムーズにいけてよいです 👌
ボタンで音量をコントロールする
続けて Button COMP
を使って簡単なインタラクションを作ってみましょう。
Button COMPにはCHOPのアウトプットがあるので、それを接続してボリュームをコントロールできるようにしてください。Button COMPは、アクティブ化(右下の +
ボタンをクリックして切り替え)されていないと押せないので注意
Button COMP
> Button
> Button Type
のドロップダウンからボタンの振舞いを選べます。主に使うのは、
Momentary
- 押している時だけOnToggle Down
- 押すとOn/Offが交互に切り替わる
ぐらいで、あとは正直あまり使いません。。
そのままボリュームに入れてしまうと 0~1 が瞬時に入れかわってしまうので、音がブチブチ途切れてしまいます。Button COMPとNull CHOPの間に Lag CHOP
を挟むとスムーズにフェードイン/アウトさせることができます。
Lag CHOPは非常によく使います。Lag
> Lag
のパラメーターを変更することでなめらかに変化する度合いを調整することができます。また、二つのパラメーターに違う値を入れることで立ち上がりと立ち下がりの具合を個別に調整できます。
また、Lag CHOPがどういう値を出力しているのかを確認するために Trail CHOP
を使うのもいいアイデアです。Trail CHOPは、入力れたCHOPのデータを時系列でプロットしてくれます。
Overshoot
のパラメーターの変化もおもしろいので、Trail CHOPに出力されているプロットを見ながらパラメーターを調整してみてください。
時間があったら
Audio Oscillator CHOP
Trigger CHOP
Audio Filter CHOP
など