
概要 📖 – VST3 プラグインを TouchDesigner 内でホストし音声を加工
Audio VST CHOPは、VST3 プラグインを TouchDesigner 内でホストし、音声入力をプラグインで加工して出力する CHOPです。プラグイン GUI から学習したパラメータを TouchDesigner 側へ公開でき、Custom Playhead で BPM やタイムコードを外部同期させてテンポ追従プラグインも駆動できます。
主な用途 🎯
- VST3 プラグインを TouchDesigner 内でホストして音声処理(リバーブ・ディレイ・コンプレッサー等)を適用
- シンセサイザー VSTを MIDI / 内部信号でドライブして音色生成
- プラグイン GUIを別ウィンドウで開き、操作したパラメータを Learn して TouchDesigner 側へ自動公開
- Custom Playheadで BPM・タイムコード・拍子を外部同期しテンポ追従プラグインを駆動
- Callbacks DATでプラグインの状態変化やパラメータ変更を Python フックで受け取り自動化
データフロー 🔄
入力: 音声チャンネル
↓
VST3 プラグインのオーディオ入力
↓
プラグイン内部 DSP(プリセット・学習済パラメータ)
↓
Playhead 同期(BPM / タイムコード / 拍子)
↓
Callbacks DAT 経由で状態通知
↓
出力: 加工済オーディオチャンネル
初心者の方は、以下日本語書籍も手元にあると安心です。

実際の案件事例まで踏み込んで紹介されていて、効率よくスキルアップするなら必携の二冊です!
パラメータ解説 ⚙️
VST Page 🎛️
プラグインファイル .file 📁
ホストする VST3 プラグインの場所を指定
File .file 📁
– ホストする VST3 プラグインのパス
– デフォルト配置: Windows は C:/Program Files/Common Files/VST3、macOS は /Library/Audio/Plug-Ins/VST3
Reload .reloadpulse 🔁
– パルスで VST3 プラグインを再ロード
– 学習済パラメータ・GUI・stash されたプラグインデータを全てクリアし初期状態に戻す
Load Plugin State on Start .loadpluginstate 💾
– プラグインの状態(プリセット値・UI 要素)を toe ファイルに保存し、TouchDesigner 起動時に復元するか
– 状態復元でクラッシュするプラグイン回避用に無効化できる
Sample Rate .rate ⚡
– VST3 プラグインのサンプルレートを設定
– 入力音声と一致させないとエイリアシングやピッチずれが発生
プラグイン GUI 制御 .gui 🪟
プラグイン UI の表示と最前面挙動
Plugin GUI Always on Top .alwaysontop 📌
– 有効時、プラグインウィンドウを常に他ウィンドウの最前面に表示
– 設定操作中に他アプリで隠れるのを防ぐ
Display Plugin GUI .displaygui 🖥️
– パルスでプラグイン GUI を別ウィンドウで開く
– Learn Parameters が有効な状態で GUI 上のパラメータを操作すると、その項目が Audio VST CHOP 側に作成される
パラメータ学習 .learn 🎓
プラグイン GUI で操作した項目を TouchDesigner 側のパラメータページに自動公開
Learn Parameters .learnparms 📝
– 有効時、VST Plugin ウィンドウで操作したパラメータが Plugin ページに自動作成される(学習)
– 必要なパラメータだけを TouchDesigner 側へ公開する用途に最適
Regular Parameters .regularparms 📋
– 有効時、プラグインの全通常パラメータを Plugin ページに作成
– 全パラメータを一気に TouchDesigner 側へ展開したい場合に使用
Read-Only Parameters .readonlyparms 🔒
– 有効時、プラグインの全 Read-Only パラメータを Plugin ページに作成
– Regular Parameters が同時にオンの場合は本トグルは無効(Regular 側に内包される)
Clear Learned Parameters .clearlearnedparms 🧹
– パルスで学習済パラメータを全てクリア
– Regular / Read-Only がいずれも無効の場合、パラメータは完全に破棄される
コールバック .callbacks 🔔
プラグインの状態変化やパラメータ変更を Python フックで受け取る DAT 参照
Callbacks DAT .callbacks 📜
– Audio VST CHOP がサポートするコールバック関数を含む DAT への参照
– パラメータ変更・プリセット切替・エラー通知等を Python で処理可能
Playhead Page ⏯️
カスタム再生位置 .customplayhead 🎯
TouchDesigner からプラグインの再生位置・テンポ・拍子を制御するか
Custom Playhead .customplayhead ▶️
– オン: 以下の Timecode / Tempo / Signature でプラグイン再生位置を制御
– オフ: プラグインは常に時間を順方向に進めるのみ(一部プラグインはカスタム再生位置非対応)
タイムコード .timecodeop ⏱️
プラグインへ渡す再生位置のソース
Timecode Object / CHOP / DAT .timecodeop 🎞️
– プラグインの再生位置を指定するソース
– 受け付ける形式は以下の通り:
hour/second/minute/frameチャンネルを持つ CHOP- 1 セル目にタイムコード文字列を持つ DAT
- Timecode クラスのオブジェクト
テンポ .tempo 🥁
Playhead で渡す BPM
Tempo (bpm) .tempo 🎵
– Playhead のテンポ(BPM)
– 一部プラグインは Playhead 経由のテンポ変更に非対応
拍子 .signature 🎼
Playhead で渡す拍子(分子・分母)
| 項目 | 内部名 | 説明 |
|---|---|---|
| Signature (signature1) | .signature1 |
拍子の分子(例: 4/4 拍子の 4) |
| Signature (signature2) | .signature2 |
拍子の分母(例: 4/4 拍子の 4) |
Common Page 🔧
Time Slice .timeslice ⏱️
Time Slice モードの強制設定:
- オン: チャンネルを「タイムスライス」モードに強制
- タイムスライス: 前回のクックフレームから現在のクックフレームまでの時間
Scope .scope 🎯
影響を受けるチャンネルの絞り込み:
- Scope 文字列: 影響を受けるチャンネルを指定する文字列
- パターンマッチング:
*や[1-10]等のパターンが使用可能
Sample Rate Match .srselect ⚡
複数の入力 CHOP のサンプルレートが異なる場合の処理方法
| 項目 | 内部名 | 説明 |
|---|---|---|
| Resample At First Input’s Rate | .first |
最初の入力のレートで他をリサンプル |
| Resample At Maximum Rate | .max |
最高サンプルレートでリサンプル |
| Resample At Minimum Rate | .min |
最低サンプルレートでリサンプル |
| Error If Rates Differ | .err |
レート不一致でエラー |
Export Method .exportmethod 📤
CHOP チャンネルをパラメータに接続する方法
| 項目 | 内部名 | 説明 |
|---|---|---|
| DAT Table by Index | .datindex |
DAT テーブルのインデックスでチャンネルとパラメータを対応付け |
| DAT Table by Name | .datname |
DAT テーブルの行名でチャンネルとパラメータを対応付け |
| Channel Name is Path:Parameter | .autoname |
チャンネル名を `path:parameter` 形式で記述し直接対応付け |
Export Root .autoexportroot 🌳
Channel Name is Path:Parameter モード時のパス基点:
- Export Root パス:
autonameモードでチャンネル名のパス部分を相対化する基点 OP のパス
Export Table .exporttable 📋
DAT Table エクスポート方式での参照 DAT:
- Export Table DAT:
datindex/datnameモード時に参照する DAT のパス
Rename from .commonrenamefrom 🔤
リネーム対象チャンネルのパターン:
- Rename from パターン: リネーム対象とするチャンネル名のパターンマッチング文字列
Rename to .commonrenameto 🔁
リネーム後の置換パターン:
- Rename to パターン: Rename from にマッチしたチャンネルの新しい名前パターン (デフォルトはリネームなし)
実践アイデア 💡
Example 1: リバーブプラグインで空間演出のオーディオに残響を付与 🎚️
Audio Device In CHOP → Audio VST CHOP (Reverb VST3) → Audio Device Out CHOP
- Audio Device In CHOP でマイクや楽器のライン入力を取得
- Audio VST CHOP の File に VST3 リバーブプラグインのパスを指定
- Display Plugin GUI をパルスして UI を開き、Learn Parameters を有効化して必要なツマミ(Mix / Decay 等)だけ TouchDesigner 側へ公開
- 出力を Audio Device Out CHOP に接続して空間に残響付き音声を出力
Example 2: Custom Playhead で BPM 同期させたディレイ 🥁
Audio Device In CHOP → Audio VST CHOP (Tempo-sync Delay, Custom Playhead = on, Tempo = 120) → Audio Device Out CHOP
- Audio Device In CHOP で楽器入力を取得
- Audio VST CHOP に BPM 同期対応のディレイ VST3 プラグインを読み込み
- Custom Playhead を有効化し、Tempo パラメータに同期させたい BPM 値(例: 120)を入力
- Signature1 / Signature2 で拍子を設定し、プラグイン側のディレイ時間が拍に追従して鳴る
Example 3: シンセ VST のパラメータをセンサー値で駆動 🎛️
Sensor / OSC In CHOP → Math CHOP (Range mapping) → Audio VST CHOP (Synth VST3, learned parameter) → Audio Device Out CHOP
- センサーや OSC 入力からリアルタイム値を取得
- Math CHOP で 0〜1 のレンジに正規化
- Audio VST CHOP の Display Plugin GUI を開き、Learn Parameters を有効化してシンセのカットオフやレゾナンスを学習
- 正規化したセンサー値を学習済パラメータに Export してインタラクティブに音色を変化させる
関連オペレータ 🔗
類似機能OP 🔍
- Audio Device In CHOP — 音声入力を取得する CHOP(Audio VST CHOP の前段に配置)
- Audio Device Out CHOP — 音声をオーディオデバイスへ出力する CHOP(Audio VST CHOP の後段に配置)
組み合わせ推奨OP 🔄
- Audio Device In CHOP — VST に通すソース音声を取得
- Audio Device Out CHOP — VST 加工後の音声をスピーカーや仮想デバイスへ送る
- MIDI In CHOP — シンセ系 VST に MIDI ノートを供給
- Math CHOP — VST の学習済パラメータへ渡すセンサー値を Range マッピング
- Analyze CHOP — VST 出力の音量・ピーク等の統計値を抽出してビジュアルへ繋ぐ
前処理・後処理CHOP 🎯
- 前処理: Audio Device In CHOP、Audio File In CHOP、MIDI In CHOP、Math CHOP
- 後処理: Audio Device Out CHOP、Audio Spectrum CHOP、Analyze CHOP、Filter CHOP
Info CHOP情報 📊
Audio VST CHOPは Info CHOP による詳細情報取得に対応しています。
CHOP固有情報 🎚️
start: CHOPインターバルの開始(サンプル単位)length: CHOPのサンプル数sample_rate: フレーム毎秒のサンプルレートnum_channels: CHOPのチャンネル数time_slice: タイムスライス有効時は1、無効時は0export_sernum: Export接続の更新回数
汎用オペレータ情報 🔄
total_cooks: プロセス開始からのクック回数cook_time: 最後のクック時間(ミリ秒)cook_frame: 最後にクックされたフレーム番号warnings: 警告数errors: エラー数
トラブルシューティング ⚠️
よくある問題と解決策 🔧
❌ Problem: プラグインがロードできない / File パスを指定してもプラグインが現れない
✅ Solution:
- VST3 形式(.vst3)であることを確認。VST2 (.dll) は Audio VST CHOP では未対応
- Windows は
C:/Program Files/Common Files/VST3、macOS は/Library/Audio/Plug-Ins/VST3の標準ディレクトリに配置されているか確認 - Reload パルスでプラグインを再ロードし、それでも読めない場合は別の VST3 で動作するかでホスト側 / プラグイン側の切り分けを行う
❌ Problem: TouchDesigner 起動時にプラグイン状態の復元でクラッシュする
✅ Solution:
- Load Plugin State on Start を無効化し、起動時の状態復元をスキップする
- クラッシュするプラグインは toe ファイルに保存された状態と互換性が無い場合があるため、最新版へアップデートまたは別バージョンを試す
- 起動後に手動でプリセット読込みする運用に切り替える
❌ Problem: 学習したパラメータが表示されない / 期待した数だけ生成されない
✅ Solution:
- Learn Parameters を有効にした状態で Display Plugin GUI から実際にパラメータを操作したか確認(操作した項目のみ学習される)
- 全パラメータを一括公開したい場合は Regular Parameters を有効化
- Read-Only パラメータを公開したい場合は Read-Only Parameters を有効化(Regular Parameters と同時オンの場合は Regular に内包される)
❌ Problem: Custom Playhead を有効化してもテンポや拍子がプラグインに反映されない
✅ Solution:
- プラグイン自体が Playhead からのテンポ・拍子変更に対応している必要がある(公式ドキュメントに非対応の旨が明記されているプラグインは無効)
- Timecode Object / CHOP / DAT の形式が
hour/second/minute/frameチャンネルを持つ CHOP、DAT 1 セル目のタイムコード文字列、または Timecode クラスオブジェクトのいずれかであることを確認 - Sample Rate(VST ページ)が入力音声と一致していないとプラグイン内の時間計算がずれる
参考資料 📚
その他 🔗
- TouchDesigner Wiki — CHOP 概要
- TouchDesigner Wiki — Category:CHOPs
- TouchDesigner Wiki ホーム
- TouchDesigner 公式 Forum
- Facebook — TouchDesigner Help Group

