
概要 📖 – 音声ファイルの再生と取り込み
Audio File In CHOPは、ディスク上の音声ファイルを読み込み、再生位置・速度・トリミングを制御してチャンネル出力する CHOPです。Sequential / Specify Index の 2 モードと Cue / Trim / Timecode 参照を組み合わせて柔軟な音声再生を実現します。
主な用途 🎯
- ディスク上の音声ファイル(WAV / AIFF / MP3 等)の読み込みと再生
- Sequential / Specify Index 2 つの再生モードによる順送り再生・ランダムアクセス
- Trim Start / Trim End によるイン点・アウト点の指定と部分再生
- Cue Point ジャンプによる即座の頭出し再生
- Timecode 参照による外部同期(CHOP / DAT / Timecode Class オブジェクトとの連携)
データフロー 🔄
入力: ファイルパス
↓
ディスクから音声バッファに読み込み
↓
Trim / Cue / Index による再生位置決定
↓
Speed / Volume / Mono 適用
↓
出力: 音声サンプルのチャンネルデータ
初心者の方は、以下日本語書籍も手元にあると安心です。

実際の案件事例まで踏み込んで紹介されていて、効率よくスキルアップするなら必携の二冊です!
パラメータ解説 ⚙️
Audio File In Page 📋
ファイル入出力 📂
File .file 📁
– 読み込む音声ファイルのパス
– WAV / AIFF / MP3 等の一般的な音声フォーマットに対応
Reload .reloadpulse 🔄
– ディスクからファイルを即座に再読み込みするパルス
– 外部ツールでファイルを上書き編集した後の反映に使用
再生制御 ▶️
Play .play ▶️
– 1 で再生開始、0 で停止
– 動的に切り替えて再生・一時停止を制御
Play Mode .playmode 🎛️
音声の再生方法を決めるメニューパラメータ
| 項目 | 内部名 | 説明 |
|---|---|---|
| Specify Index | .specify |
Index パラメータで再生位置を明示指定するモード(ランダムアクセス) |
| Sequential | .sequential |
タイムラインに依存せず連続再生するモード(Index は無効、Reset / Speed が有効) |
Sequential 再生用パラメータ ⏩
Speed .speed 🏃
– Sequential モード時のみ有効な再生速度倍率
– 1 = 等速、2 = 倍速、0.5 = 半速
– 負の値は逆再生に対応していないため利用不可
Cue .cue 🎯
– Sequential モード時のみ有効
– 1 にすると Cue Point の位置にジャンプ
Cue Pulse .cuepulse ⚡
– Cue Point に即座にジャンプするパルス
– トリガー的に頭出しさせたいときに使用
Cue Point .cuepoint 📍
– Cue / Cue Pulse でジャンプする位置
– 単位は Cue Point Unit で指定
Cue Point Unit .cuepointunit 🧭
Cue Point パラメータで使用する単位
| 項目 | 内部名 | 説明 |
|---|---|---|
| Index | .index |
音声サンプルのインデックスで指定 |
| Frames | .frames |
TouchDesigner のタイムラインフレーム単位で指定 |
| Seconds | .seconds |
秒単位で指定 |
Index 系パラメータ 📌
Index .index 📍
– Specify Index モード時の再生位置を明示指定
– 単位は Index Unit パラメータで Index / Frames / Seconds から選択
Index Unit .indexunit 🧭
Index パラメータで使用する単位
| 項目 | 内部名 | 説明 |
|---|---|---|
| Index | .index |
音声サンプルのインデックスで指定 |
| Frames | .frames |
TouchDesigner のタイムラインフレーム単位で指定 |
| Seconds | .seconds |
秒単位で指定 |
Timecode 参照 🕒
Timecode Object / CHOP / DAT .timecodeop 🔗
– 音声ファイルのインデックスをタイムコード参照で設定
– hour / second / minute / frame チャンネルを持つ CHOP、最初のセルにタイムコード文字列を持つ DAT、または Timecode Class オブジェクトを指定
Repeat .repeat 🔁
音声の終端到達時の挙動
| 項目 | 内部名 | 説明 |
|---|---|---|
| Off | .off |
終端で停止(リピートしない) |
| On | .on |
終端到達時に先頭からループ再生 |
Trim 系パラメータ ✂️
Trim .trim ✂️
– Trim Start / Trim End パラメータを有効化
– オフのときはファイル全長が再生対象
Trim Start .trimstart ⏮️
– 音声の先頭からのイン点(再生開始位置)
– 単位は Trim Start Unit で Index / Frames / Seconds から選択
Trim End .trimend ⏭️
– 音声の末尾からのアウト点(再生終了位置)
– 単位は Trim End Unit で Index / Frames / Seconds から選択
Trim Start Unit .trimstartunit 🧭
Trim Start パラメータで使用する単位
| 項目 | 内部名 | 説明 |
|---|---|---|
| Index | .index |
音声サンプルのインデックスで指定 |
| Frames | .frames |
TouchDesigner のタイムラインフレーム単位で指定 |
| Seconds | .seconds |
秒単位で指定 |
Trim End Unit .trimendunit 🧭
Trim End パラメータで使用する単位
| 項目 | 内部名 | 説明 |
|---|---|---|
| Index | .index |
音声サンプルのインデックスで指定 |
| Frames | .frames |
TouchDesigner のタイムラインフレーム単位で指定 |
| Seconds | .seconds |
秒単位で指定 |
バッファ・タイムアウト 💾
Pre-Read Length .prereadlength 📥
– 滑らかな再生のために事前にバッファする音声量
– メモリ使用量がわずかに増えるが、再生遅延は発生しない
Open Timeout .opentimeout ⏳
– 音声ファイルのオープン待機時間(ミリ秒)
– タイムアウト時は無音を再生し、次のクックで再度オープン試行を繰り返す
Pre-Read Length Unit .prereadlengthunit 🧭
Pre-Read Length パラメータで使用する単位
| 項目 | 内部名 | 説明 |
|---|---|---|
| Index | .index |
音声サンプルのインデックスで指定 |
| Frames | .frames |
TouchDesigner のタイムラインフレーム単位で指定 |
| Seconds | .seconds |
秒単位で指定 |
出力制御 🔊
Mono .mono 🎚️
– オンにするとマルチチャンネルファイルでもモノラル 1 ch のみ出力
– ステレオファイルから単一信号として扱いたいときに使用
Volume .volume 🔉
– 音声の読み込みレベル
– 1 でフルボリューム、0 でミュート
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: BGM のループ再生 🎵
Audio File In CHOP (Repeat=On) → Audio Device Out CHOP
- File パラメータに BGM 用の音声ファイル(WAV / MP3 等)のパスを指定
- Play Mode を Sequential に設定して連続再生モードへ
- Repeat を On にして終端到達時に自動で先頭からループ
- 出力を Audio Device Out CHOP に接続してスピーカーから再生
Example 2: 効果音のキューポイント再生 🎯
Trigger CHOP → Audio File In CHOP (Cue Pulse) → Audio Device Out CHOP
- 効果音をまとめた音声ファイルを File に指定
- Cue Point に効果音の頭位置を Seconds 単位で設定
- Cue Pulse パラメータに Trigger CHOP の出力をバインド
- ボタンや MIDI 入力でトリガーされた瞬間に頭出し再生
Example 3: 音声波形の解析(VJ ライト同期) 📊
Audio File In CHOP → Audio Spectrum CHOP / Analyze CHOP → Light Intensity
- Audio File In CHOP で楽曲を再生
- 出力を Analyze CHOP に接続して RMS Power を取得
- RMS 値を Math CHOP で 0-1 にスケーリング
- ライトの強度や DMX 出力にマッピングして音楽同期演出
Example 4: 区間トリミング再生 ✂️
Audio File In CHOP (Trim On) → Audio Device Out CHOP
- Trim パラメータをオンにしてトリミングを有効化
- Trim Start を Seconds 単位で再生開始位置に設定
- Trim End を Seconds 単位で再生終了位置に設定
- ファイル全長ではなく指定した区間のみが再生対象になる
関連オペレータ 🔗
類似機能OP 🔍
- Audio Device In CHOP — ファイルではなくマイク・ライン入力等の物理デバイスから音声を取得
- Audio Stream In CHOP — ネットワーク経由のオーディオストリームを取得
組み合わせ推奨OP 🔄
- Audio Device Out CHOP — 再生した音声をスピーカーやオーディオインターフェースへ出力
- Audio Spectrum CHOP — 再生中の音声を周波数領域に変換してビジュアライズ用途に
- Analyze CHOP — RMS Power やピーク値で音量レベルを抽出
- Math CHOP — 音量値の正規化や Range 変換で他パラメータへマッピング
- Trigger CHOP — Cue Pulse のトリガーや音量エンベロープの起動
前処理・後処理CHOP 🎯
- 前処理: Constant CHOP、Trigger CHOP、Timer CHOP
- 後処理: Audio Spectrum CHOP、Analyze CHOP、Math CHOP、Filter CHOP
Info CHOP情報 📊
Audio File 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:
- File パラメータに指定したパスが正しいか確認(相対パスの場合はプロジェクト基点)
- Play パラメータが 1 になっているか確認
- Volume が 0 になっていないか、Open Timeout 内にファイルが開けているか確認
❌ Problem: 再生が途切れる / プチノイズが入る
✅ Solution:
- Pre-Read Length を増やしてバッファ量を確保
- ファイルがネットワークドライブにある場合はローカルにコピー
- 後段の Audio Device Out CHOP のサンプルレート設定を確認
❌ Problem: 再生位置の制御が効かない
✅ Solution:
- Play Mode が Sequential のとき Index は無効、Cue / Speed / Reset を使う
- Play Mode が Specify Index のとき Cue / Speed は無効、Index で位置指定する
- Trim を有効にしているとき、Index / Cue Point は Trim 区間内の値である必要がある
❌ Problem: 逆再生したいが Speed に負の値を入れても効かない
✅ Solution:
- Audio File In CHOP は逆再生に対応していない仕様(公式 docs 明記)
- 逆再生が必要な場合は事前に音声ファイルを反転させたファイルを別途用意して切替
- 短尺の効果音であれば Math CHOP で Index 値を逆順に駆動する代替手段も検討
参考資料 📚
その他 🔗
- TouchDesigner Wiki — CHOP 概要
- TouchDesigner Wiki — Category:CHOPs
- TouchDesigner Wiki ホーム
- TouchDesigner 公式 Forum
- Facebook — TouchDesigner Help Group

