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

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

CHOP to DAT のチャンネル→テーブル変換機能を示す図

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

概要 📖 – CHOP チャンネル値をテーブル形式の DAT に書き出す変換

CHOP to DATは、入力 CHOP のチャンネル値を行・列単位でテーブル化し、DAT として出力する DATです。Row per Channel / Column per Channel の 2 種類の出力形態と、Include Names / Latest Sample when Time Slice の組合せで、ログ用・送信用・デバッグ表示用など用途に応じたテーブルを生成します。

主な用途 🎯

  • CHOP チャンネル値をテーブル化し、Table DAT で可視化・デバッグする
  • Trail CHOP 等の時系列サンプルを File Out DAT へ流して .csv / .tsv ログとして保存
  • Web Server DATWebSocket DAT から外部クライアントへ送るペイロードの整形
  • Convert DAT で JSON 化して REST API 送信 / 別 OP ツリーへの値受け渡しに活用
  • Include Names をオンにしてチャンネル名カラムを併記し、行・列指向どちらの後段にも対応

データフロー 🔄

入力: CHOP (parameter で指定)

Latest Sample when Time Slice の判定 (時系列か瞬時値か)

Output 形態の決定 (Row per Channel / Column per Channel)

Include Names で名前列を付加するかを決定

出力: DAT (テーブル)

Tips

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

まる。
まる。

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


パラメータ解説 ⚙️

CHOP To Page 📋

CHOP 入力 .chop 🔌

値を読み取る元の CHOP を指定する

CHOP .chop 🔌
– 値を取得する対象の CHOP をパス参照で指定
– 各チャンネルの値ごとに 1 行 (または 1 列) を生成する基点となる入力

Include Names .names 🏷️

チャンネル名列の付加トグル:

  • Include Names トグル: names をオンにすると、各行 (Row per Channel) または各列 (Column per Channel) に対して、対応するチャンネル名を持つ追加カラムが付加される

Latest Sample when Time Slice .latestsample ⏱️

タイムスライス CHOP の最新サンプル限定モード:

  • Latest Sample when Time Slice トグル: latestsample をオンにし、かつ入力 CHOP が time-sliced のとき、最新サンプルのみが DAT 出力に使われる。フレームが落ちてもテーブルサイズが揺れないため、後段の Table DAT 参照が安定する

Output .output 📤

チャンネル値の並べ方を選択するメニュー

項目 内部名 説明
Row per Channel .rowperchan 各チャンネルを 1 行として並べる (チャンネル数 = 行数)。サンプル数が複数あれば横方向に伸びる
Column per Channel .colperchan 各チャンネルを 1 列として並べる (チャンネル数 = 列数)。サンプル数が複数あれば縦方向に伸びる

Common Page 🔧

Language .language 📝

DAT が動作するスクリプト言語の決定方法

項目 内部名 説明
Input .input 入力 DAT のスクリプト言語を使用
Node .node この DAT 自身のスクリプト言語を使用

Edit/View Extension .extension 📄

外部エディタに公開するファイル拡張子の選択

項目 内部名 説明
dat .dat 汎用的なファイル拡張子 dat を使用
From Language .language DAT のスクリプト言語に応じた拡張子を自動選択
Custom Extension .custom Custom Extension で指定したカスタム拡張子を使用

Custom Extension .customext 🔤

Edit/View ExtensionCustom Extension のときに適用される拡張子:

  • Custom Extension 文字列: Edit/View Extensioncustom のときに使用される任意のファイル拡張子

Word Wrap .wordwrap 🔁

ノード表示でのワードラップ (折り返し) の有効化

項目 内部名 説明
Input .input 入力 DAT の Word Wrap 設定を継承
On .on Word Wrap を有効化 (長い行を折り返して表示)
Off .off Word Wrap を無効化 (長い行は横スクロール)

実践アイデア 💡

Example 1: Table DAT で CHOP 値をリアルタイム可視化 👀

Audio Spectrum CHOP → CHOP to DAT (Row per Channel, Include Names=on) → Table DAT

オーディオ解析 CHOP の各バンド値を、チャンネル名カラム付きでテーブル化し、Table DAT に貼り付けて値の挙動をデバッグする基本フロー。Latest Sample when Time Slice をオンにしておくと、time-sliced CHOP でも 1 サンプル分の現在値だけが表示されるため、行数が変動せず読みやすい。

  1. Audio Spectrum CHOP を配置してオーディオ入力を周波数領域へ変換
  2. CHOP to DAT を後段に置き、chop パラメータで Audio Spectrum CHOP を参照
  3. Output を Row per Channel、Include Names をオンに設定
  4. Latest Sample when Time Slice をオンにして瞬時値のみ書き出し
  5. 後段の Table DAT で各チャンネルの現在値を視覚的に確認

Example 2: CSV ログとして時系列値を保存 💾

Serial CHOP → Trail CHOP (Length) → CHOP to DAT (Column per Channel, Include Names=on) → File Out DAT

センサーや解析 CHOP の時系列サンプルを Trail CHOP で蓄積したあと、CHOP to DAT で列指向テーブルに変換し、File Out DAT 経由で CSV / TSV ログとして保存する用途。Column per Channel 形式は表計算ソフトで開いたときの列見出し付き時系列フォーマットと一致しやすい。

  1. 計測対象の CHOP (例: Audio Devices DAT 経由で取得した Audio Device In CHOP の RMS など) を入力に用意
  2. Trail CHOP で必要な時間長分のサンプルを保持
  3. CHOP to DAT の Output を Column per Channel、Include Names をオンに設定
  4. Latest Sample when Time Slice をオフにして全サンプル書き出し
  5. 後段の File Out DAT で .csv または .tsv として保存

Example 3: Web Server DAT で外部クライアントへブロードキャスト 🌐

Math CHOP / Filter CHOP → CHOP to DAT (Row per Channel, Include Names=on) → Convert DAT (To JSON) → Web Server DAT

コントロール値や演奏データを CHOP で生成したあと、CHOP to DAT で名前付きテーブルに変換し、Convert DAT で JSON 化して Web Server DAT 経由で WebSocket クライアントへブロードキャストする用途。Include Names を必ずオンにしてフィールド名を保持しておくと、受信側で値を辞書アクセスできる。

  1. 送信したい値群を Math CHOP / Filter CHOP で整形しチャンネル名を意味のある名前にリネーム
  2. CHOP to DAT を後段に配置、Output を Row per Channel、Include Names をオンに設定
  3. Convert DAT を続け、Convert に To JSON 等のフォーマットを選択
  4. Web Server DAT (または WebSocket DAT) でブラウザ / 外部クライアントへ送信
  5. 受信側で name フィールドをキーにして値を取り出し UI 等に反映

Example 4: セットアップ時のスナップショット保存 🗂️

Constant CHOP (設定値) → CHOP to DAT (Row per Channel, Include Names=on) → Table DAT (保存先)

Constant CHOP に書き込まれた設定値群 (機材 ID、ゲイン、しきい値 等) を、人が読めるテーブル形式で記録する用途。プロジェクト引継ぎ時のドキュメント代わりにも使えるほか、後から DAT to CHOP で読み戻して同じ設定を別ファイルへ展開する基点にもなる。

  1. Constant CHOP に設定値を書き込み、各チャンネル名を意味のある識別名にリネーム
  2. CHOP to DAT を配置、Output を Row per Channel、Include Names をオンに設定
  3. Latest Sample when Time Slice をオンにして単発スナップショット化
  4. 出力先の Table DAT に Edit ロックを掛けて意図しない上書きを防止
  5. 必要なら File Out DAT で外部ファイル (.tsv など) としても保管

関連オペレータ 🔗

類似機能OP 🔍

  • DAT to CHOP — 逆方向: DAT テーブルのセル値を CHOP チャンネルへ展開

組み合わせ推奨OP 🔄

  • Table DAT — CHOP to DAT の代表的な保存先・表示先
  • Convert DAT — 出力テーブルを JSON / CSV / TSV 等のテキスト形式へ変換
  • File Out DAT — テーブル化した値をディスクへ書き出してログ保存
  • Web Server DAT — テーブル / JSON 化した値を外部クライアントへブロードキャスト
  • Trail CHOP — 前段で時系列サンプルを蓄積し CHOP to DAT で履歴テーブル化

前処理・後処理DAT 🎯


Info CHOP情報 📊

CHOP to DAT は Info CHOP による詳細情報取得に対応しています。num_rows / num_cols でテーブル規模を、total_cooks / cook_time / cpu_time で実行統計を参照でき、後段 DAT の再評価タイミング判定や負荷監視に利用できます。

DAT 固有情報 📋

  • num_rows: DAT の行数
  • num_cols: DAT の列数
  • type: DAT の型 (table / text)
  • is_table: テーブル形式の場合 1、テキスト形式の場合 0

汎用オペレータ情報 🔄

  • total_cooks: プロセス開始からのクック回数
  • cook_time: 最後のクック時間 (ミリ秒)
  • cook_frame: 最後にクックされたフレーム番号
  • warnings: 警告数
  • errors: エラー数

トラブルシューティング ⚠️

よくある問題と解決策 🔧

❌ Problem: 値が想定したセル位置に並ばない / 行と列が逆になる
✅ Solution:

  • Output が Row per Channel (行 = チャンネル) か Column per Channel (列 = チャンネル) のどちらに設定されているかを確認
  • Include Names のオン / オフでヘッダ列が追加されるかどうかが変わるため、後段 Table DAT のインデックス参照とずれていないか確認
  • 後段の Convert DAT で行・列を入れ替えたい場合は Transpose 系のメニューで補正

❌ Problem: time-sliced CHOP を入力したらテーブル行数が毎フレーム変化する
✅ Solution:

  • Latest Sample when Time Slice を オンにして最新サンプルのみ書き出すモードに切替
  • 全サンプルを保持したい場合は前段の Trail CHOP でサンプル数を固定してから CHOP to DAT に渡す
  • 上記でも揺れる場合は入力 CHOP の Time Slice 設定 (Common Page) 自体を見直す

❌ Problem: チャンネル名カラムが出ない / 想定外のカラムが入る
✅ Solution:

  • Include Names がオンになっていることを確認
  • 上流 CHOP のチャンネル名が chan1 等のデフォルトのままになっていないか確認 (前段で Rename CHOP で意味のある名前に変更)
  • Web Server DAT / Convert DAT 後段で名前列が必要な場合は、Include Names オンを必須要件として配線時にチェック

❌ Problem: File Out DAT で書き出した CSV が後段で再読み込みできない
✅ Solution:

  • 出力前にチャンネル名・値に , や改行が混入していないかを確認 (混入していれば前段の Math / 文字列処理で除去)
  • File Out DAT の Append / Replace モードを意図と合わせて選択 (ログ追記なら Append)
  • 再読込側の DAT to CHOP の First Row is / First Column is を、書き出し時の Include Names 設定と整合させる

参考資料 📚

その他 🔗

公式リソース 📖

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