TouchDesignerでシンセサイザーを作ってみよう!アンプのエンベロープジェネレーター(音量変化)編

投稿日:2018-06-16



ナカジ(@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を押すたびに音量が設定した時間で変化すれば、今回はここまでです。



サポート募集中

この記事はお役に立てましたか。
よかったら、コーヒー ☕ をご馳走いただけたら励みになります。



TouchDesigner学習におすすめ



おすすめのクリエイティブ・コーディング関連カテゴリー

ウェブツール

機能はシンプルなものですが、p5.jsやTone.jsで描画したり音が出たりするので遊んでみてください。
・【Midi Number Tools】:MIDIナンバーから音名と周波数を判定します
・【Delay Time Calculator】:テンポに応じた音符の長さを判定します