
概要 📖 – サラウンド音声をバイノーラル化
Audio Binaural CHOPは、マルチチャンネル音声を HRTF でバイノーラル化し 2ch ヘッドホン向け立体音響を出力する CHOPです。Stereo / Quad / 5.1 / 7.1 / Custom / Ambisonics の各入力フォーマットに対応し、リスナー姿勢を反映した頭外定位レンダリングを 1 オペレータで完結します。
主な用途 🎯
- ステレオ・サラウンド音声をヘッドホン向けバイノーラル信号に変換
- 5.1 / 7.1 サラウンドソースを 2ch ヘッドホン再生用に空間化
- Ambisonics(1〜3 次)音声のリスナー姿勢追従デコード
- VR / AR / インスタレーションでの没入型立体音響レンダリング
- カスタムスピーカー配置(Mapping Table)に応じた任意 3D 音場の頭外定位処理
データフロー 🔄
入力: マルチチャンネル音声(Stereo / Surround / Ambisonics 等)
↓
Input Format に応じたチャンネル解釈
↓
Listener 姿勢適用(Ambisonics 時)
↓
HRTF によるバイノーラル合成
↓
出力: 2ch ヘッドホン用 L/R 音声
初心者の方は、以下日本語書籍も手元にあると安心です。

実際の案件事例まで踏み込んで紹介されていて、効率よくスキルアップするなら必携の二冊です!
パラメータ解説 ⚙️
Setup Page 📋
Active .active ⚡
バイノーラルレンダリングの実行可否
| 項目 | 内部名 | 説明 |
|---|---|---|
| Active | .active |
オン: バイノーラルレンダリングを実行。オフ: 出力チャンネルがゼロ化される(処理停止)。 |
Input Format .inputformat 🎚️
入力 CHOP のチャンネル数とその空間的解釈方法を決定するメニュー
| 項目 | 内部名 | 説明 |
|---|---|---|
| Stereo | .stereo |
入力に 2 チャンネルが必要 |
| Quadraphonic Surround | .quadraphonic |
入力に 4 チャンネルが必要 |
| 5.1 Surround | .fiveone |
入力に 6 チャンネルが必要 |
| 7.1 Surround | .sevenone |
入力に 8 チャンネルが必要 |
| Custom Setup | .custom |
Mapping Table のスピーカー数に応じてチャンネル数が決定 |
| Ambisonics | .ambisonics |
Ambisonics Order に応じてチャンネル数が決定 |
Ambisonics Order .ambisonicsorder 🌐
Ambisonics 入力時のオーダー指定
| 項目 | 内部名 | 説明 |
|---|---|---|
| Ambisonics Order | .ambisonicsorder |
Input Format が Ambisonics の時に有効。1〜3 次の Ambisonics に対応し、それぞれ 4 / 9 / 16 チャンネルが入力に必要。 |
Listener .listener 👂
| 項目 | 内部名 | 説明 |
|---|---|---|
| Listener | .listener |
Ambisonics 入力時、リスナーオブジェクト(Geometry COMP 等)を指定するとその向きをバイノーラルレンダリング前に適用する(リスナーの頭の向きに追従した立体音響)。任意指定。 |
Mapping Table .mappingtable 📋
| 項目 | 内部名 | 説明 |
|---|---|---|
| Mapping Table | .mappingtable |
Custom Setup 入力フォーマット使用時に参照する DAT Table。x, y, z の 3 列を持ち、各行が 1 個のスピーカー位置(3D 座標)を表す。Mapping Table の行数だけ入力 CHOP のチャンネルが必要になる。 |
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: 5.1 サラウンド音源をヘッドホン向けバイノーラル化 🎧
Audio File In CHOP (5.1 ソース) → Audio Binaural CHOP (Input Format = 5.1 Surround) → Audio Device Out CHOP
- 5.1 サラウンド音源(6 チャンネル)を Audio File In CHOP で読み込む
- Audio Binaural CHOP の Input Format を「5.1 Surround」に設定
- 出力(2ch L/R)を Audio Device Out CHOP に接続
- ヘッドホン再生で 5.1 の空間定位が頭外に再現される
Example 2: Ambisonics 音源 + リスナー姿勢追従 🌐
Ambisonics File In → Audio Binaural CHOP (Ambisonics, Order=1, Listener=geo1) → Audio Device Out CHOP
- Ambisonics 1 次音源(4 チャンネル)を入力 CHOP に接続
- Input Format を「Ambisonics」、Ambisonics Order を 1 に設定
- Listener にリスナーオブジェクト(Geometry COMP)を指定
- リスナーの頭の向きを動かすと、音場が逆方向に回転して頭外定位が保たれる
Example 3: Custom スピーカー配置のバイノーラル変換 📐
Multi-Channel Audio → Audio Binaural CHOP (Input Format = Custom Setup, Mapping Table) → Audio Device Out CHOP
- DAT Table を作成し
x,y,zの 3 列に各スピーカーの 3D 座標を記述 - Audio Binaural CHOP の Input Format を「Custom Setup」、Mapping Table に作成した DAT を指定
- 入力 CHOP のチャンネル数を Mapping Table の行数と揃える
- 任意のスピーカー配置を 2ch ヘッドホン信号にレンダリングできる
関連オペレータ 🔗
類似機能OP 🔍
- Audio Render CHOP — 3D 空間内の音源と Listener から立体音響をレンダリング(HRTF を含む包括的な空間音響処理)
組み合わせ推奨OP 🔄
- Audio File In CHOP — マルチチャンネル音源ファイルを入力ソースとして供給
- Audio Device Out CHOP — バイノーラル出力をヘッドホンに送出する後段
- Audio Device In CHOP — ライブマイク入力をマルチチャンネルソースとして供給
- Math CHOP — 出力ゲイン調整・ヘッドホンレベルの正規化
- Filter CHOP — 前段でノイズ除去、後段でクリップ前のスムージング
前処理・後処理CHOP 🎯
- 前処理: Audio File In CHOP、Audio Device In CHOP、Math CHOP、Filter CHOP、Audio Movie CHOP
- 後処理: Audio Device Out CHOP、Math CHOP、Filter CHOP、Limit CHOP、Audio Stream Out CHOP
Info CHOP情報 📊
Audio Binaural 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:
- Active パラメータがオンになっているか確認(オフ時はチャンネルがゼロ化される)
- 入力 CHOP のチャンネル数が Input Format の要件と一致しているか確認(5.1 なら 6ch、Ambisonics 1 次なら 4ch)
- 入力音源そのものが信号を持っているかを上流の Math CHOP や CHOP Viewer で検証
❌ Problem: Custom Setup でチャンネル数エラーが出る
✅ Solution:
- Mapping Table の行数と入力 CHOP のチャンネル数が一致しているか確認
- Mapping Table の DAT が
x,y,zの 3 列で構成されているか確認 - 入力チャンネル数を合わせるために前段で Math CHOP や Reorder CHOP でチャンネル整形を行う
❌ Problem: Ambisonics でリスナーの向きが反映されない
✅ Solution:
- Input Format が「Ambisonics」になっているか確認(他フォーマットでは Listener 参照は無効)
- Listener パラメータに Geometry COMP 等のオブジェクトパスが正しく指定されているか確認
- リスナーオブジェクトの transform(rotate)が想定通り更新されているかを CHOP Viewer 経由で検証
❌ Problem: ヘッドホン再生時に音割れ / クリップする
✅ Solution:
- 後段に Limit CHOP を入れて出力を [-1, 1] の範囲にクランプ
- 後段の Math CHOP で全体ゲインを下げる(Multiply で 0.5 等)
- 入力ソースの各チャンネルレベルが過大になっていないか前段で確認
参考資料 📚
その他 🔗
- TouchDesigner Wiki — CHOP 概要
- TouchDesigner Wiki — Category:CHOPs
- TouchDesigner Wiki ホーム
- TouchDesigner 公式 Forum
- Facebook — TouchDesigner Help Group

