TouchDesignerでシンセサイザーを作ってみよう!アンプのエンベロープジェネレーター(音量変化)編
ナカジ(@cp_nakajun)です。
TouchDesignerを使う理由は「映像」だとわかっています。
ですが、僕が興味を持って「やってみよう」と思ってしまったからにはその衝動に従って
ほとんどニーズが無いと思いながらもTouchDesignerでシンセサイザーを作ってみようと思います。
いや、ちょっとだけ「映像と音を同時にジェネレートする」っていうニーズはあると思ってます。
最終的にどこまでのものができるかわりませんがお付き合いください。
今回はシンセサイザーの要素の1つである「音量変化」部分です。
アンプのエンベロープジェネレーター
最初に「音の3要素」を紹介します。
- 音の大きさ
- 音の高さ(音程)
- 音色(成分)
この3つのバランスが時間とともにどう変化するかによって「音(の特徴)」は決まります。
今回は「音の大きさ」の「時間変化」を作るところをやります。
ADSR方式のエンベロープジェネレーター
作るのはADSR方式のエンベロープジェネレーターです。
ADSR方式とは
- Attack Time:最大音量に達するまでの時間
- Decay Time:最大音量から持続音量に達するまでの時間
- Sustain Level:音の持続音量レベル
- Relese Time:音が消えるまでの時間
の4つの要素をもっています。
その頭文字の「ADSR」です。
TouchDesignerでどう作るか
まずは単純に音を出しましょう!
CHOPの[Audio Oscillator][Audio Device Out]を選び
とりあえず、以下のように繋ぎます。
[Audio Oscillator]のWaveformタブの「Type」で基本波形
「Base Frequency」で周波数(音の高さ)を設定できます。
音が出ることを確認します。
次に音量をコントロールする為に[Math]CHOPを[Audio Device Out]の前に挿入します。
ここでは後で変更できるように[Audio Device Out]の前に[Null]CHOPを置いているのでその前です。
ポイントはOscillatorのAmplitude(音量)を直接操作しないことです。
あくまでも作った音色全体の音量変化なので基本は最後にトータルで変化する音量の変化になります。
[Math]CHOPの設定は「Combine CHOPs」を「Multiply」です。
で、ようやく今回のメインです。
ADSRの要素を設定し出力させるのは[Trigger]CHOPを使います。
[Trigger]CHOPを先ほどの[Math]CHOPに入力(結線)します。
この[Trigger]CHOPにADSRを解りやすく設定するにはポイントがあります。
まず[Trigger]CHOPの「Common」タブの「Time Slice」を「ONからOFF」にします。
こうすることでADSRのエンベロープカーブが視覚的にわかるようになります。
ADSR要素は「Attack」タブと「Sustain」タブのパラメーターで設定します。
さらにもう1つポイント、これ大事です。
「Chan」タブでSample RateをOscillatorと合わせます。
最後に[Button]COMPを[Trigger]CHOPに繋ぎ、「Botton Type」を「Momentary」にすればOKです。
Buttonを押すたびに音量が設定した時間で変化すれば、今回はここまでです。