
概要 📖 – オーディオデバイスからの音声入力取得
Audio Device In CHOPは、オーディオデバイスから音声入力を取得しチャンネル波形として出力する CHOPです。DirectSound/CoreAudio・ASIO・Blackmagic・AJA・DataPath といった複数ドライバに対応し、Mono/Stereo/Multi-channel での入力取得が可能です。
主な用途 🎯
- マイク・オーディオインターフェース等からのリアルタイム音声入力取得
- ライブパフォーマンス・インスタレーションでのオーディオリアクティブ演出
- ASIO ドライバ経由での低レイテンシー多チャンネル入力
- 音声波形からの解析(RMS Power・スペクトラム・ピーク検出)への入力ソース
- Blackmagic / AJA / DataPath 等キャプチャデバイスのオーディオストリーム取得
データフロー 🔄
入力: 物理オーディオデバイス(マイク・オーディオI/F・キャプチャカード)
↓
ドライバ選択(DirectSound/CoreAudio/ASIO/native)
↓
入力チャンネル選択
↓
出力: 音声サンプルのチャンネル波形
初心者の方は、以下日本語書籍も手元にあると安心です。

実際の案件事例まで踏み込んで紹介されていて、効率よくスキルアップするなら必携の二冊です!
パラメータ解説 ⚙️
Audio Device In Page 📋
Driver .driver 🎛️
使用するオーディオドライバを選択するメニューパラメータ
| 項目 | 内部名 | 説明 |
|---|---|---|
| DirectSound/CoreAudio | .default |
OS 標準のオーディオドライバ(Windows: WDM / DirectSound、macOS: CoreAudio) |
| ASIO | .asio |
オーディオインターフェース付属の低レイテンシードライバ(Windows) |
| DataPath (RGBEASY) | .datapath |
DataPath 製キャプチャデバイスからのオーディオ取得用ネイティブドライバ |
| Blackmagic | .blackmagic |
Blackmagic Design 製デバイスからのオーディオ取得用ネイティブドライバ |
| AJA | .aja |
AJA 製デバイスからのオーディオ取得用ネイティブドライバ |
Format .format 🔊
DirectSound 使用時の入力チャンネル構成(Mono/Stereo/Multi-channel)
| 項目 | 内部名 | 説明 |
|---|---|---|
| Mono | .mono |
モノラル 1 チャンネルで入力 |
| Stereo | .stereo |
ステレオ 2 チャンネル(左右)で入力 |
※ 注意: Driver が DirectSound の場合のみ Format パラメータが有効になります。Multi-channel に設定した場合はチャンネル数を Input 1 / Input 2 ページで選択する必要があります。
デバイス選択・入力設定 🎙️
Active .active 🟢
– オーディオ入力のオン/オフ切り替え
– オフ時は CHOP がクックされず CPU 負荷を抑えられる
Device .device 🎚️
– 入力対象のオーディオデバイスを選択するメニュー
– default 選択時は OS の既定の録音デバイス(Windows: コントロールパネル>サウンド>録音)を使用
Error if Missing .errormissing ⚠️
– 指定されたデバイスが見つからない場合に CHOP をエラー化
– デバイス未接続時の事故検出用に有効化推奨
Inputs .inputs 🎛️
– Driver が ASIO(Windows)または CoreAudio(macOS)の場合に使用する入力チャンネルを選択
– 多チャンネルオーディオI/F の特定入力のみを取り出す用途
Rate .rate 📐
– オーディオ入力のサンプルレート(samples/sec)
– 一般的には 44100 / 48000 / 96000 等を指定
Buffer Length .bufferlength 📏
– 入力バッファのサイズ。レイテンシーに直接影響
– 大きいほど安定するがレイテンシーが増加、小さいほど低遅延だが音切れリスクが上がる
Number of Channels .numchan 🔢
– Driver が Blackmagic / AJA の場合に使用するチャンネル数を指定
Input 1 Page 🎚️
Input 1 チャンネル選択 🎙️
Multi-channel モード時に有効化する入力チャンネル(前方・低周波・後方系):
- Front Left:
frontleft– 前方左チャンネル(利用可能な場合は有効化、または追加チャンネルとして使用) - Front Right:
frontright– 前方右チャンネル - Front Center:
frontcenter– 前方中央チャンネル - Low Frequency:
lowfrequency– 低周波(サブウーファ)チャンネル - Back Left:
backleft– 後方左チャンネル - Back Right:
backright– 後方右チャンネル - Front Left of Center:
frontleftcenter– 前方中央左寄りチャンネル - Front Right of Center:
frontrightcenter– 前方中央右寄りチャンネル - Back Center:
backcenter– 後方中央チャンネル
Input 2 Page 🎛️
Input 2 チャンネル選択 🎙️
Multi-channel モード時に有効化する入力チャンネル(側方・上方系):
- Side Left:
sideleft– 側方左チャンネル - Side Right:
sideright– 側方右チャンネル - Top Center:
topcenter– 上方中央チャンネル - Top Front Left:
topfrontleft– 上方前方左チャンネル - Top Front Center:
topfrontcenter– 上方前方中央チャンネル - Top Front Right:
topfrontright– 上方前方右チャンネル - Top Back Left:
topbackleft– 上方後方左チャンネル - Top Back Center:
topbackcenter– 上方後方中央チャンネル - Top Back Right:
topbackright– 上方後方右チャンネル
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 → Analyze CHOP (RMS Power) → Math CHOP → Light Intensity
- Audio Device In CHOP の Device で使用するマイクを選択(または default で OS 既定)
- Active をオンにして入力開始、Format を Stereo に設定
- 後段の Analyze CHOP で Function を「RMS Power」に設定して音量を取得
- Math CHOP で値域を 0-1 に正規化し、ライトの強度パラメータに Export
Example 2: ASIO 経由の低レイテンシー多チャンネル入力 🎛️
Audio Device In CHOP (ASIO) → Audio Spectrum CHOP → Visualizer
- Driver を「ASIO」に切り替えてオーディオI/F のドライバを選択
- Inputs パラメータで使用する入力チャンネルを個別に有効化
- Buffer Length を低遅延設定(例: 128 サンプル)に下げる
- Audio Spectrum CHOP で周波数解析しビジュアライザに供給
Example 3: Blackmagic デバイスからのキャプチャ音声取り込み 📹
Audio Device In CHOP (Blackmagic) → Audio Device Out CHOP / Recording
- Driver を「Blackmagic」に変更
- Number of Channels で取得チャンネル数を指定
- 映像入力(Video Device In TOP)と同期させたオーディオを取得
- 後段で Audio Device Out CHOP に流すか、ファイル録音用に分岐
Example 4: 音声波形のピーク検出によるイベントトリガー 🔔
Audio Device In CHOP → Filter CHOP (De-spike) → Analyze CHOP (Index of Highest Peak) → Trigger CHOP
- Audio Device In CHOP でマイク入力を取得
- Filter CHOP の De-spike でクリック音や電源ノイズを除去
- Analyze CHOP で「Index of Highest Peak」を選択しピーク位置を抽出
- Trigger CHOP で閾値判定し音響イベントに同期した演出を起動
関連オペレータ 🔗
類似機能OP 🔍
- Audio Stream In CHOP — ネットワークストリーミング経由の音声入力
- Audio File In CHOP — ファイルからの音声入力(デバイスではなくファイルが入力ソース)
組み合わせ推奨OP 🔄
- Analyze CHOP — 音声波形から RMS Power・ピーク等の統計値を抽出
- Audio Spectrum CHOP — 後段で時間領域から周波数領域へ変換
- Filter CHOP — ノイズ除去や De-spike による前処理
- Audio Device Out CHOP — 入力した音声をそのままモニタリング出力
- Trigger CHOP — 音量レベルから ADSR エンベロープを起動
前処理・後処理CHOP 🎯
- 前処理: Constant CHOP、Null CHOP
- 後処理: Filter CHOP、Math CHOP、Analyze CHOP、Audio Spectrum CHOP、Resample CHOP
Info CHOP情報 📊
Audio Device In 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 がオンになっているか確認
- Device メニューで正しい入力デバイスが選択されているか確認(
defaultは OS 既定の録音デバイス) - Error if Missing をオンにしてデバイス未接続のエラーを表面化
- OS 側のサウンド設定(Windows: コントロールパネル>サウンド>録音)でデバイスが有効化されているか確認
❌ Problem: 音声入力にレイテンシーが大きい/音切れが発生する
✅ Solution:
- Driver を ASIO(Windows)または CoreAudio(macOS)に切り替えてレイテンシーを下げる
- Buffer Length を小さくしてレイテンシー短縮(小さすぎると音切れリスクあり、システム性能と要バランス)
- Rate(サンプルレート)をデバイス側のネイティブレートに合わせて再サンプリングを回避
❌ Problem: Multi-channel 入力で意図したチャンネルが取得できない
✅ Solution:
- Driver が DirectSound の場合は Format を「Multi-channel」に設定し Input 1 / Input 2 ページでチャンネルを有効化
- Driver が ASIO/CoreAudio の場合は Inputs パラメータで使用チャンネルを個別選択
- Driver が Blackmagic / AJA の場合は Number of Channels で取得チャンネル数を指定
- 後段でSelect CHOPを使い必要なチャンネルだけを取り出す
❌ Problem: ノイズや電源ハムが入力に乗る
✅ Solution:
- 後段にFilter CHOPの De-spike や Gaussian を入れて時間方向のノイズ除去
- Math CHOPで DC オフセットを補正
- ハードウェア側のゲイン設定や接地(グラウンドループ)を物理的に見直す
参考資料 📚
その他 🔗
- TouchDesigner Wiki — CHOP 概要
- TouchDesigner Wiki — Category:CHOPs
- TouchDesigner Wiki ホーム
- TouchDesigner 公式 Forum
- Facebook — TouchDesigner Help Group

