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

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

Audio Stream Out CHOP のネットワーク音声送信機能を示す図

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

概要 📖 – ネットワーク経由の音声ストリーム送信

Audio Stream Out CHOPは、入力された音声 CHOP を RTSP または WebRTC でネットワーク配信する CHOPです。RTSP モードでは Port + Stream Name を URL に組み込んで複数クライアントへ配信、WebRTC モードでは WebRTC DAT 経由のピア接続で低遅延送信を実現します。

主な用途 🎯

  • RTSP プロトコルによる音声ストリームのネットワーク配信
  • WebRTC ピア接続を介した低遅延の音声送信
  • リモートクライアントへのリアルタイム音声配信
  • 複数受信端末への同一音声ストリーム同時配信
  • TouchDesigner プロジェクト間のネットワーク音声中継

データフロー 🔄

入力: 音声 CHOP(Audio Device In / Audio File In 等)

Audio Stream Out CHOP(Mode: RTSP / WebRTC)

ネットワーク送信(Port + Stream Name または WebRTC Track)

受信側クライアント(Audio Stream In / WebRTC ピア / RTSP プレイヤー)

Tips

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

まる。
まる。

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


パラメータ解説 ⚙️

Audio Stream Out Page 📡

Active .active 🟢

RTSP サーバーの起動・停止トグル

項目 内部名 説明
Active .active オン: RTSP サーバーを起動して音声ストリーム送信を開始。オフ: サーバーを停止し送信を中断。

Mode .mode 🔀

ストリーム送信方式の選択メニュー

項目 内部名 説明
RTSP .rtsp RTSP プロトコルでストリーム配信(Port + Stream Name で URL を組み立て複数クライアントへ送信)
WebRTC .webrtc WebRTC ピア接続でストリーム送信(WebRTC DAT 経由、低遅延・ブラウザ対応)

Port .port 🔌

RTSP モード時の送信ポート番号:

  • Port 番号: 音声ストリームの送信に使用するポート番号。受信側クライアントの URL に同じ番号を記述する必要があります

Stream Name .streamname 🏷️

RTSP モード時のストリーム識別子:

  • Stream Name 文字列: ストリームに割り当てる名前。受信側クライアントの URL(rtsp://<host>:<port>/<streamname> 形式)に使用される

WebRTC Page 🌐

WebRTC .webrtc 📶

WebRTC DAT(ピア)の参照:

  • WebRTC DAT パス: 音声ストリームを送出する WebRTC DAT のパス。設定すると WebRTC Connection メニューが利用可能な接続で自動的に populate される

WebRTC Connection .webrtcconnection 🔗

WebRTC ピア・ツー・ピア接続:

  • WebRTC Connection 識別子: 送信に使う WebRTC ピア・ツー・ピア接続。選択すると WebRTC Track メニューが利用可能な音声出力トラックで自動的に populate される

WebRTC Track .webrtctrack 🎚️

WebRTC 音声出力トラック:

  • WebRTC Track 識別子: WebRTC ピア・ツー・ピア接続に属する音声出力トラック。音声ストリームはこのトラック上で送信される

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: マイク入力を RTSP でリモート配信 🎙️

Audio Device In CHOP → Audio Stream Out CHOP (Mode: RTSP, Port: 8554, Stream Name: mic) → ネットワーク → 受信側 RTSP プレイヤー
  1. Audio Device In CHOP でマイク入力を取得
  2. Audio Stream Out CHOP を作成し Mode を「RTSP」に設定
  3. Port = 8554、Stream Name = mic を設定し Active をオン
  4. 受信側で rtsp://<host>:8554/mic の URL でストリームを再生する

Example 2: WebRTC で低遅延ブラウザ配信 🌐

Audio File In CHOP → Audio Stream Out CHOP (Mode: WebRTC, WebRTC DAT) → ピア接続 → ブラウザ
  1. Audio File In CHOP で BGM ファイルをロード
  2. WebRTC DAT を別途配置してシグナリング・ピア接続を確立
  3. Audio Stream Out CHOP の Mode を「WebRTC」に設定し WebRTC DAT を参照
  4. WebRTC Connection / WebRTC Track を選択し Active をオンにしてブラウザへ低遅延送信

Example 3: TouchDesigner プロジェクト間の音声中継 🔁

送信側 Audio Device In CHOP → Audio Stream Out CHOP (RTSP) → LAN → 受信側 Audio Stream In CHOP
  1. 送信側プロジェクトで Audio Device In の出力を Audio Stream Out CHOP に接続
  2. Mode = RTSP、Port + Stream Name を任意の値に設定し Active をオン
  3. 受信側プロジェクトで Audio Stream In CHOP を作成し同じ URL を入力
  4. LAN 上の複数 TouchDesigner インスタンス間でリアルタイム音声を共有する

関連オペレータ 🔗

類似機能OP 🔍

  • Audio NDI CHOP — NDI プロトコルで LAN 内に音声を送受信、RTSP/WebRTC とは別経路の低遅延配信
  • Audio Device Out CHOP — ネットワーク送信ではなくローカル音声デバイスへの再生出力
  • Audio File Out CHOP — ストリーム送信ではなく音声ファイルへの書き出し

組み合わせ推奨OP 🔄

  • Audio Device In CHOP — マイク入力ソースとして Audio Stream Out の上流に直結
  • Audio File In CHOP — 音声ファイルをソースとしてネットワーク配信
  • Audio Filter CHOP — 送信前段で帯域制限・ノイズ除去を施す
  • Audio Dynamics CHOP — 送信前段でコンプレッサー・リミッターによる音量整形
  • WebRTC DAT — WebRTC モード時のシグナリング・ピア接続を担当する必須コンパニオン

前処理・後処理CHOP 🎯


Info CHOP情報 📊

Audio Stream Out 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: 受信側でストリームに接続できない
✅ Solution:

  • Active がオンになっているか確認(オフだと RTSP サーバーが起動しない)
  • Port 番号と Stream Name が受信側 URL(rtsp://<host>:<port>/<streamname>)と一致しているか確認
  • ファイアウォール / NAT で該当 Port が解放されているか確認

❌ Problem: WebRTC モードで音声が届かない
✅ Solution:

  • WebRTC DAT のシグナリングが完了しピア接続が確立しているか確認
  • WebRTC Connection / WebRTC Track メニューが空でないか確認(空の場合は接続未確立)
  • 送信側・受信側の WebRTC コーデック・サンプルレートが一致しているか確認

❌ Problem: 送信音声に途切れ・遅延・ノイズが出る
✅ Solution:

  • 前段に Filter CHOP や Audio Filter CHOP を入れて高周波ノイズを抑制
  • Audio Dynamics CHOP でリミッターをかけクリップを防止
  • ネットワーク帯域・LAN/Wi-Fi 環境を確認、有線接続で安定化

❌ Problem: 同じ Port を別プロセスが使用していてサーバーが起動しない
✅ Solution:

  • Port 番号を別の空きポートへ変更(例: 8554 → 8555)
  • Active を一度オフにしてから再度オンにし RTSP サーバーを再起動
  • OS 側で該当 Port を占有しているプロセスを終了する

参考資料 📚

その他 🔗

公式リソース 📖

この記事は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をコピーしました