
概要 📖 – レーザー DAC へのポイントストリーミング
EtherDream CHOPは、入力された x, y, r, g, b チャンネルを EtherDream レーザー DAC へネットワーク経由でストリーミング送出する CHOPです。TCP ポート 7765 で DAC と通信し、ポイントキューを介してリアルタイムなレーザー描画を実現します。
主な用途 🎯
- EtherDream レーザー DAC へのリアルタイム XYRGB ポイントストリーム送信
- TCP ポート 7765 経由でのネットワーク接続によるレーザー描画制御
- X / Y 座標スケールによる投影サイズ・位置の調整
- Red / Green / Blue スケールによるカラーマッピング・輝度バランス調整
- Queue Time / Queue Units によるポイントバッファ深度のチューニング
データフロー 🔄
入力: x, y, r, g, b チャンネル
↓
EtherDream CHOP(X/Y/RGB スケール適用)
↓
ポイントキュー管理(Queue Time / Units)
↓
TCP ネットワーク送出(Port 7765)
↓
出力: EtherDream DAC によるレーザー描画
初心者の方は、以下日本語書籍も手元にあると安心です。

実際の案件事例まで踏み込んで紹介されていて、効率よくスキルアップするなら必携の二冊です!
パラメータ解説 ⚙️
Ether Dream Page 📋
接続制御 🔌
Active .active ✅
– オンで EtherDream へのポイントデータ送出を開始、オフで送出停止 + ポイントバッファを即時クリア
– オフ時の挙動は EtherDream の電源を切った状態と等価
Network Address .netaddress 🌐
– EtherDream 本体とコンピュータが接続されているネットワークアドレスを xxx.xxx.xx.xxx 形式で指定
– 適切なアドレス値や接続状況の確認には EtherDream Diagnostic Tool を利用
Network Port .port 🔢
– EtherDream は既定で TCP ポート 7765 を使用
– CHOP と DAC の通信が成立しない場合はファイアウォール設定の調整が必要
Queue Time .queuetime ⏳
EtherDream ポイントバッファのキュー長と排出時間:
- Queue Time: ポイントバッファのキューサイズと排出時間を決定。送出ポイント数が少ない場合はこの値を小さくすることが多い
Queue Units .queueunits 📐
Queue Time の単位を選択するメニューパラメータ
| 項目 | 内部名 | 説明 |
|---|---|---|
| Samples | .samples |
サンプル数(ポイント数)単位で Queue Time を指定 |
| Frames | .frames |
フレーム単位で Queue Time を指定 |
| Seconds | .seconds |
秒単位で Queue Time を指定 |
XY スケール 📏
X Scale .xscale ↔️
– 入力 x 値に対して指定した倍率を乗算
– 投影画像の左右方向のサイズ・位置を調整
Y Scale .yscale ↕️
– 入力 y 値に対して指定した倍率を乗算
– 投影画像の上下方向のサイズ・位置を調整
RGB スケール 🎨
Red Scale .redscale 🔴
– 入力 r 値に対して指定した倍率を乗算
– 赤チャンネルの輝度を調整
Green Scale .greenscale 🟢
– 入力 g 値に対して指定した倍率を乗算
– 緑チャンネルの輝度を調整
Blue Scale .bluescale 🔵
– 入力 b 値に対して指定した倍率を乗算
– 青チャンネルの輝度を調整
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: リサジュー図形をレーザー投影 🌀
LFO CHOP (sin/cos) → Math CHOP (range) → EtherDream CHOP → Laser
- 2 つの LFO CHOP を sin / cos 設定で異なる周波数比(例: 3:2)で生成
- Math CHOP で値域を [-1, 1] に揃え、x / y チャンネルとしてリネーム
- Constant CHOP で r / g / b チャンネルを追加(例: r=1, g=0, b=0)
- EtherDream CHOP の Network Address を DAC の IP に設定し Active をオン
- 周波数比に応じたリサジュー図形がレーザーで描画される
Example 2: オーディオ波形をビートに同期させてレーザー描画 🎵
Audio Device In CHOP → Filter CHOP → Math CHOP → EtherDream CHOP → Laser
- Audio Device In CHOP で音声入力を取得
- Filter CHOP で過剰な高周波ノイズを抑制
- Math CHOP で x チャンネル化、別の Audio Device In CHOP の信号で y / RGB を生成
- EtherDream CHOP の X Scale / Y Scale で投影サイズを調整
- 音楽に同期したリアルタイム波形描画がレーザーで表示される
Example 3: TOX のテキスト輪郭を SOP 経由でレーザー描画 ✏️
Text SOP → SOP to CHOP → Shuffle CHOP → EtherDream CHOP → Laser
- Text SOP で描画したい文字列のアウトラインを取得
- SOP to CHOP で頂点座標を tx / ty チャンネルとして抽出
- Shuffle CHOP / Rename CHOP で x / y / r / g / b の 5 チャンネル順に整形
- EtherDream CHOP で Queue Time を短めに設定し低遅延で送出
- テキストの輪郭が連続したレーザー描画として投影される
関連オペレータ 🔗
類似機能OP 🔍
- DMX Out CHOP — 舞台照明・LED 機材向けの DMX512 出力(用途は異なるが外部機材ストリーム送出という共通点)
- Audio Device Out CHOP — オーディオ DAC へのチャンネルストリーム送出(IO 系 CHOP として近縁)
- OSC Out CHOP — ネットワーク経由で他機器に値を送るオプション(より汎用的なネットワーク送出)
組み合わせ推奨OP 🔄
- LFO CHOP — リサジュー / 円 / 螺旋等の数学パターンを生成する上流ソース
- Math CHOP — x / y / RGB の値域を [-1, 1] や [0, 1] にスケーリング・正規化
- Filter CHOP — 急峻な座標変化をスムージングしてレーザーミラーへの負荷を低減
- Audio Device In CHOP — 音声波形をレーザー描画ソースに利用
- SOP to CHOP — ジオメトリの頂点座標をレーザー描画パスとして抽出
前処理・後処理CHOP 🎯
Info CHOP情報 📊
EtherDream 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: EtherDream に接続できない / レーザーが動かない
✅ Solution:
Network Addressが DAC の IP と一致しているか EtherDream Diagnostic Tool で確認Network Portがデフォルトの7765のままか、ファイアウォールで TCP 7765 を許可Activeがオンになっているか、PC と DAC が同じサブネット上にあるか確認
❌ Problem: 投影サイズが小さすぎる / 大きすぎる
✅ Solution:
X Scale/Y Scaleで投影サイズを調整(通常は 0〜1 範囲)- 上流の Math CHOP で x / y チャンネルを
[-1, 1]に正規化済か確認 - DAC ハードウェア側のミラー振れ角制限を超えていないか EtherDream の仕様を確認
❌ Problem: 色が暗い / 期待した色が出ない
✅ Solution:
Red Scale/Green Scale/Blue Scaleで各色チャンネルの輝度を調整- 入力 r / g / b チャンネルが
[0, 1]の範囲に正規化されているか Math CHOP で確認 - レーザープロジェクタのカラーバランス設定(ハードウェア側)も併せて調整
❌ Problem: 描画が遅延する / 動きがガクつく
✅ Solution:
Queue Timeを短くしてバッファ深度を浅くし低遅延化- 送出ポイント数が少ない場合は
Queue Timeを小さい値にすると改善することが多い - 上流に Filter CHOP を入れて急峻な変化を抑え、ミラーの追従負荷を低減
参考資料 📚
その他 🔗
- TouchDesigner Wiki — CHOP 概要
- TouchDesigner Wiki — Category:CHOPs
- TouchDesigner Wiki ホーム
- TouchDesigner 公式 Forum
- Facebook — TouchDesigner Help Group

