Audio VST CHOP 完全ガイド | 使い方・パラメータ解説【TouchDesigner】

※当サイトにはプロモーションリンクが含まれます。

Audio VST CHOP で VST3 プラグインを TouchDesigner にホストする図

記事更新の通知はXでアナウンス٩(๑❛ᴗ❛๑)
@maru6o6をフォロー

概要 📖 – 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 経由で状態通知

出力: 加工済オーディオチャンネル

Tips

初心者の方は、以下日本語書籍も手元にあると安心です。

まる。
まる。

実際の案件事例まで踏み込んで紹介されていて、効率よくスキルアップするなら必携の二冊です!


パラメータ解説 ⚙️

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
  1. Audio Device In CHOP でマイクや楽器のライン入力を取得
  2. Audio VST CHOP の File に VST3 リバーブプラグインのパスを指定
  3. Display Plugin GUI をパルスして UI を開き、Learn Parameters を有効化して必要なツマミ(Mix / Decay 等)だけ TouchDesigner 側へ公開
  4. 出力を 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
  1. Audio Device In CHOP で楽器入力を取得
  2. Audio VST CHOP に BPM 同期対応のディレイ VST3 プラグインを読み込み
  3. Custom Playhead を有効化し、Tempo パラメータに同期させたい BPM 値(例: 120)を入力
  4. Signature1 / Signature2 で拍子を設定し、プラグイン側のディレイ時間が拍に追従して鳴る

Example 3: シンセ VST のパラメータをセンサー値で駆動 🎛️

Sensor / OSC In CHOP → Math CHOP (Range mapping) → Audio VST CHOP (Synth VST3, learned parameter) → Audio Device Out CHOP
  1. センサーや OSC 入力からリアルタイム値を取得
  2. Math CHOP で 0〜1 のレンジに正規化
  3. Audio VST CHOP の Display Plugin GUI を開き、Learn Parameters を有効化してシンセのカットオフやレゾナンスを学習
  4. 正規化したセンサー値を学習済パラメータに 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 🎯


Info CHOP情報 📊

Audio VST CHOPは Info CHOP による詳細情報取得に対応しています。

CHOP固有情報 🎚️

  • start: CHOPインターバルの開始(サンプル単位)
  • length: CHOPのサンプル数
  • sample_rate: フレーム毎秒のサンプルレート
  • num_channels: CHOPのチャンネル数
  • time_slice: タイムスライス有効時は1、無効時は0
  • export_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 ページ)が入力音声と一致していないとプラグイン内の時間計算がずれる

参考資料 📚

その他 🔗

公式リソース 📖

この記事はLLMと共に内容を執筆、更新しています。
最新バージョンとの項目差異など、情報の不一致を見つけた心優しい方はXもしくはInsta、メールなどよりサイト管理者までご連絡ください😎


まる。

お仕事のご依頼はDM又はメールにて。
━━━━━━━━━━━━━━━━━
Python/Touchdesigner/M5Stackをこよなく愛すフルスタックエンジニア。
専門は生理心理学、趣味はヨガやサウナ、EMS電気風呂などヘルスケア全般。
脳波や筋電、心拍を中心とした生体情報のセンシング&インタラクティブアートづくりがライフワーク。

普段はワントゥーテンという会社で空間演出エンジニアをしています。
リファラル採用お繋ぎできますので、我こそはという尖った方は経歴と希望職種添えてDMください(エンジニア以外、営業職等もOK)。
ご飯行きましょう。

↓日常垢
Instagram:@malmal0v0

まる。をフォローする
その他の記事はこちら
Math Combine POP 完全ガイド | 使い方・パラメータ解説【TouchDesigner】
ZED Select TOP 完全ガイド | 使い方・パラメータ解説【TouchDesigner】
ZED POP 完全ガイド | 使い方・パラメータ解説【TouchDesigner】
Window COMP 完全ガイド | 使い方・パラメータ解説【TouchDesigner】
Widget COMP 完全ガイド | 使い方・パラメータ解説【TouchDesigner】

タイトルとURLをコピーしました