
概要 📖 – コンプレッサー・リミッターによる音声ダイナミクス制御
Audio Dynamics CHOPは、コンプレッサーとリミッターを組み合わせて音声信号のダイナミクスを制御する CHOPです。入力ゲインの調整・しきい値ベースの圧縮・最大音量の制限を 1 オペレータで完結し、音声反応ビジュアルやライブミックスの前段に最適です。
主な用途 🎯
- 音声信号のコンプレッション(しきい値超過分を圧縮してダイナミクスを均一化)
- 音声信号のリミッティング(クリッピング防止、ピーク値の安定化)
- マスタリング前処理として音量レベルを揃え、聴感上の一貫性を作る
- ライブパフォーマンスでの突発的な大音量入力からスピーカーや視覚出力を保護
- 音声反応ビジュアルに渡す前のレベル整形(FFT・Analyze 前段の前処理)
データフロー 🔄
入力: 音声チャンネル
↓
Pre Page(Input Gain)
↓
Compressor(Threshold / Ratio / Knee / Attack / Release / Output Gain)
↓
Limiter(Threshold / Release / Knee)
↓
Post Page(Dry / Wet Mix)
↓
出力: ダイナミクス制御済みの音声
初心者の方は、以下日本語書籍も手元にあると安心です。

実際の案件事例まで踏み込んで紹介されていて、効率よくスキルアップするなら必携の二冊です!
パラメータ解説 ⚙️
Pre Page 🎚️
Pre パラメータ 🎚️
Input Gain (dB) .inputgain 🔊
– コンプレッサーに入る前のチャンネル音量を調整するゲイン(dB 単位)
– 入力信号が圧縮に適したダイナミックレンジに無いとき、ここで持ち上げ/下げて整える
Compressor Page 🗜️
Compressor 有効化 .enablecompressor 🟢
Enable Compressor .enablecompressor 🟢
– コンプレッサーをオン/オフするトグル
– オフ時は Compressor Page の他パラメータは無効
Compression Type .compressiontype 🎛️
適用するコンプレッションの種別を選択するメニュー
| 項目 | 内部名 | 説明 |
|---|---|---|
| Automatic Gain Control | .compagc |
長時間にわたり音量変動する素材向け。しきい値を最大音量付近に置き、Ratio を高め、Attack / Release を高めに設定して全体音量を一定範囲に収める |
| Musical Dynamics | .compmus |
ボーカル・楽器など演奏中に音量変動する素材向け。低めの Ratio + 控えめな Attack / Release でナチュラルにダイナミクスを揃える |
Channel Linking .chanlinkingcomp 🔗
複数チャンネル入力時にどう圧縮量を決めるか
| 項目 | 内部名 | 説明 |
|---|---|---|
| Compress Equally | .compequally |
全チャンネルから最大ピーク値を取り、その値で全チャンネルを同量だけ圧縮(ステレオの定位を維持) |
| Compress Individually | .compindividually |
各チャンネルを独立に評価して個別に圧縮量を決める(左右で違う圧縮量になり得る) |
Compressor 動作パラメータ ⚙️
Threshold (dB) .thresholdcompressor 📉
– 圧縮を開始するしきい値(dB スケール)
– 0 dB が想定最大音量(-1 ~ +1 正規化前提)、-60 dB はほぼ無音
Ratio .ratiocompressor 📊
– しきい値超過分に適用する圧縮比
– 0: 圧縮なし。1: しきい値で完全に頭打ち。1 超: しきい値超過分を逆方向(小さく)にする
Knee .kneecompressor 🦵
– しきい値前後の圧縮遷移カーブの滑らかさ
– 0(ハードニー): しきい値で急激に圧縮開始。値を上げるほど遷移がなだらかになる
Attack (msec=10**val) .attackcompressor ⏱️
– 入力がしきい値を超えてから圧縮が立ち上がるまでの応答時間
– 値を上げるほどゆっくり反応。上げ過ぎるとピークを取り逃す
Release (msec=10**val) .releasecompressor ⏳
– 入力が下がった後、圧縮が解除されるまでの応答時間
– 値を上げるほどゆっくり戻る。上げ過ぎると音量回復が間に合わない
Output Gain (dB) .gaincompressor 📈
– 圧縮で失われた音量を補正するメイクアップゲイン
– 圧縮後に dB 単位で持ち上げて聴感上の音量を揃える
Limiter Page 🚧
Limiter 有効化 .enablelimiter 🟢
Enable Limiter .enablelimiter 🟢
– リミッターをオン/オフするトグル
– オフ時は Limiter Page の他パラメータは無効
Channel Linking .chanlinkinglim 🔗
複数チャンネル入力時にどう制限量を決めるか(コンプレッサーと同じ考え方)
| 項目 | 内部名 | 説明 |
|---|---|---|
| Limit Equally | .compequally |
全チャンネルから最大ピークを取り、同量だけリミッティング |
| Limit Individually | .compindividually |
各チャンネルを独立に評価して個別に制限 |
Limiter 動作パラメータ ⚙️
Threshold (dB) .thresholdlimiter 📉
– リミッティングを開始するしきい値(dB)
– 通常は 0 dB 維持(クリップ防止目的)。下げると低い音量で頭打ちになる
Release (msec=10**val) .releaselimiter ⏳
– リミッティング解除までの応答時間(Attack は常に高速で固定)
– 上げ過ぎると過剰な制限から戻りが遅くなる
Knee .kneelimiter 🦵
– リミッティング遷移カーブの滑らかさ
– 0: しきい値超過時のみ制限。上げるとしきい値手前から徐々に制限し全体を滑らかにする
Post Page 🎛️
Dry / Wet Mix .drywet 💧
Dry / Wet Mix .drywet 💧
– エフェクトの適用量(1: Wet=エフェクト全適用、0: Dry=原音)
– パラレル処理(原音とエフェクト音のブレンド)に使用
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 Dynamics CHOP (Compressor + Limiter) → Audio Device Out CHOP
- Audio Device In CHOP でマイクや楽器入力を取得
- Audio Dynamics CHOP の Enable Compressor をオン、Threshold を
-12 dB、Ratio を0.5程度に設定して全体音量を均す - Enable Limiter をオン、Threshold を
0 dBに維持してデジタルクリップを防止 - Audio Device Out CHOP に渡し、出力レベルメーターで頭打ちが効いているか確認
Example 2: 音声反応ビジュアルの安定化 📊
Audio Device In CHOP → Audio Dynamics CHOP (Musical Dynamics) → Analyze CHOP (RMS Power) → Visual Parameter
- 音声入力を Audio Dynamics CHOP に通し、Compression Type を
Musical Dynamicsに設定 - Threshold を
-20 dB、Ratio を0.3程度の控えめな値で素材のダイナミクスを軽く揃える - 後段に Analyze CHOP を置いて RMS Power を抽出
- ビジュアルパラメータ(光量・スケール等)に Export し、突発的な大音量で破綻しない安定した反応を得る
Example 3: ナレーション素材のレベル均一化 🎙️
Audio File In CHOP → Audio Dynamics CHOP (Automatic Gain Control) → Audio File Out CHOP
- Audio File In CHOP で長尺のナレーション音源を読み込み
- Compression Type を
Automatic Gain Controlに、Attack / Release を高めに設定 - Output Gain でメイクアップして全体音量を引き上げる
- 話者の声量変動が均一化され、後段のミックスがしやすくなる
関連オペレータ 🔗
類似機能OP 🔍
- Audio Filter CHOP — 周波数帯域別の処理(ローパス・ハイパス等)に特化、ダイナミクス制御は不可
- Math CHOP — 汎用的な値域変換・ゲイン処理向け、しきい値ベースの圧縮ロジックは持たない
- Limit CHOP — ハードクランプによる値域制限、音響的なリミッタとは異なる
組み合わせ推奨OP 🔄
- Audio Device In CHOP — マイク・楽器入力をリアルタイム取得して Audio Dynamics の前段に渡す
- Audio Device Out CHOP — ダイナミクス処理済みの音声を実出力デバイスへ送る
- Audio File In CHOP — 音源ファイルを再生して Audio Dynamics に入力
- Analyze CHOP — ダイナミクス整形済み音声から RMS / Peak 等の統計値を抽出
- Audio Spectrum CHOP — 整形後の音声を FFT して周波数帯ごとの強度を取り出す
- Math CHOP — ダイナミクス出力を Range 変換してビジュアルパラメータにマッピング
前処理・後処理CHOP 🎯
- 前処理: Audio Device In CHOP、Audio File In CHOP、Audio Filter CHOP、Math CHOP
- 後処理: Analyze CHOP、Audio Spectrum CHOP、Audio Device Out CHOP、Filter CHOP
Info CHOP情報 📊
Audio Dynamics 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: 圧縮を効かせても音が変わらない/不自然にポンピングする
✅ Solution:
- Threshold が高すぎて入力がしきい値を超えていない可能性。入力レベルを VU メーターや Analyze CHOP で確認し、Threshold を下げる
- Attack / Release が短すぎてポンピング(音量が周期的に揺れる現象)が出る場合は両方を上げて滑らかにする
- Knee を
0から少し上げてしきい値前後の遷移をなだらかにする
❌ Problem: Limiter で音が潰れて歪む
✅ Solution:
- Threshold を
0 dB付近で運用(過度に下げると常時リミッティングがかかり音が潰れる) - 前段の Compressor で先にダイナミクスを整え、Limiter は最終ピーク防止のみに役割を限定する
- Knee を上げてしきい値超過直前から滑らかに制限を開始させる
❌ Problem: ステレオ音源で左右の定位がぶれる
✅ Solution:
- Channel Linking を
Compress Individually/Limit Individuallyにしている場合、左右で異なる圧縮量になる - ステレオの定位を維持したい場合は
Compress Equally/Limit Equallyに切り替える - 前段に Math CHOP を入れて L/R チャンネル名を統一しておくと挙動が予測しやすい
❌ Problem: Dry / Wet Mix を変えても音色がほぼ変わらない
✅ Solution:
- Compressor / Limiter のしきい値を入力が超えていないと Wet 成分そのものが変化しない、Threshold を確認
- Enable Compressor / Enable Limiter の両方が有効になっているか確認
- Output Gain を上げ過ぎていると Wet 信号が飽和して原音との差が見えにくくなる
参考資料 📚
その他 🔗
- TouchDesigner Wiki — CHOP 概要
- TouchDesigner Wiki — Category:CHOPs
- TouchDesigner Wiki ホーム
- TouchDesigner 公式 Forum
- Facebook — TouchDesigner Help Group

