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

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

Analyze CHOP の信号解析機能を示す図

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

概要 📖 – 信号解析と統計処理

Analyze CHOPは、入力されたチャンネルのすべての値を分析・計算・収束させ、単一の数値結果を出力する CHOPです。出力は 1 サンプル長で、最大値・平均・ピーク等の統計的特性を解析します。

主な用途 🎯

  • チャンネルデータの統計的解析(最大・最小・平均値の取得)
  • ピーク検出とそのインデックス取得
  • 音声波形信号の解析(RMS Power、ピーク検出 等)
  • データ駆動型制御システムでの閾値判定
  • センサーデータの特徴量抽出

データフロー 🔄

入力: チャンネルデータ(複数サンプル)

分析処理(Function 設定に応じた統計処理)

出力: 1 サンプル長の解析結果

Tips

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

まる。
まる。

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


パラメータ解説 ⚙️

Analyze Page 📋

Function .function 🎛️

チャンネルに適用する分析関数を決定するメニューパラメータ

項目 内部名 説明
Average .average チャンネル全体の平均値を計算
Maximum .maximum チャンネル内の最大値を取得
Minimum .minimum チャンネル内の最小値を取得
Index of Maximum .maximumindex 最大値のサンプルインデックス(0から開始)
Index of Minimum .minimumindex 最小値のサンプルインデックス(0から開始)
Sum .sum 全サンプル値の合計
RMS Power .rmspower RMS(実効値平方根)を計算
Value of First Peak .firstpeakvalue 最初のピーク値
Index of First Peak .firstpeakindex 最初のピークのインデックス
Value of Last Peak .lastpeakvalue 最後のピーク値
Index of Last Peak .lastpeakindex 最後のピークのインデックス
Value of Highest Peak .highestpeakvalue 最高ピーク値
Index of Highest Peak .highestpeakindex 最高ピークのインデックス※
Value of Lowest Peak .lowestpeakvalue 最低ピーク値
Index of Lowest Peak .lowestpeakindex 最低ピークのインデックス※
Total Peaks .totalpeaks チャンネル内の総ピーク数
Duplicates .duplicates 重複値の解析(詳細は下記参照)

※ 注意: 同じ値を持つ複数のピークがある場合、最後のピークサンプルのインデックスを返します。

引用元: 公式 docs

ピーク関連パラメータ 📈

Allow Start Peaks .allowstart
– 最初の2サンプルがv0, v1でv0 > v1の場合、最初のサンプルもピークとしてカウント
– デフォルト:オフ(最初のサンプルはピークとみなさない)

Allow End Peaks .allowend
– 最後の2サンプルがvn, vmでvm > vnの場合、最後のサンプルもピークとしてカウント
– デフォルト:オフ(最後のサンプルはピークとみなさない)

No Peak Value .nopeakvalue 📈
– ピークが見つからない場合に出力する値(デフォルト:-1)
– Peak IndexやPeak Value関数でピークが検出されなかったことの判定に使用

Analyze Valleys vs Peaks .valleys 🔄
– オンにするとピークではなく谷(Valley)を解析対象に切り替え
– 切り替え時は以下の Valley 関数が有効になります:

  • First Valley
  • Highest Valley
  • Lowest Valley

Duplicates機能詳細 🔍

duplicatesを選択すると、入力チャンネルごとに2つの追加チャンネルが作成されます:

  • count: 特定の値の重複数
  • index: その値が最初に現れたサンプルインデックス

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) → Export → Light Intensity

Audio Device In CHOP のリアルタイム音声入力に対し Analyze CHOP で RMS Power を算出し、その単一値を照明強度などの制御信号に流用する基本フロー。

  1. Audio Device In CHOPで音声入力を取得
  2. Analyze CHOPのFunctionを「RMS Power」に設定
  3. 出力をライトの強度パラメータにExport
  4. 音声の音量に応じてリアルタイムで照明が変化

Example 2: センサーデータのピーク検出 📊

Serial In DAT → Convert DAT → Analyze CHOP (Index of Highest Peak)

Serial In DAT で受け取ったセンサーストリームを Analyze CHOP の Index of Highest Peak モードに通し、極大値が発生したタイミングをトリガとして抽出する例。

  • センサーから得られる連続データの中で最大値が発生したタイミングを検出
  • ピークタイミングでイベントトリガーを実行

Example 3: ゲームスコア計算 🎮

Player Input → Math CHOPs → Analyze CHOP (Sum) → Score Display

プレイヤー入力を Math CHOP 群で前処理した後、Analyze CHOP の Sum モードで累積スコアを算出してリアルタイム表示に反映する用途。

  • プレイヤーの入力値を累積してスコア計算
  • リアルタイムでの得点表示システム

Example 4: データ品質チェック 🔄

Input Data → Analyze CHOP (Duplicates) → Logic → Alert System

入力データに含まれる重複値を Analyze CHOP の Duplicates モードで検出し、Logic CHOP と組み合わせて品質異常時のアラートに繋げるフロー。

  • データストリーム内の重複値をモニタリング
  • 重複が検出された場合のアラート生成

関連オペレータ 🔗

類似機能OP 🔍

  • Info CHOP — CHOP自体のメタ情報取得

組み合わせ推奨OP 🔄

  • Logic CHOP — 分析の min/max 値を if 条件として閾値判定
  • Math CHOP — 分析結果を後段で正規化・スケーリング
  • Trigger CHOP — 分析ピーク値から ADSR エンベロープを起動
  • Audio Spectrum CHOP — 前段で周波数領域に変換してから Analyze に通す
  • CHOP to TOP — 解析値を GPU シェーダ uniform に渡す
  • CHOP to DAT — 解析値を CSV/Table 形式でロギング
  • Trail CHOP — 解析値の時間履歴を可視化
  • Filter CHOP — 前処理・後処理どちらでも有効

前処理・後処理CHOP 🎯


Info CHOP情報 📊

Analyze 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:

  • Allow Start Peaks / Allow End Peaks の設定を確認
  • データにノイズが多い場合は前処理でFilter CHOPを使用
  • No Peak Value で期待値が設定されているか確認

❌ Problem: 期待した統計値が得られない
✅ Solution:

  • 入力データの範囲を確認(Math CHOPでクランプ等)
  • Sample Rate Match の設定を適切に選択
  • Time Slice の設定がデータ特性に合っているか確認

❌ Problem: パフォーマンスが重い
✅ Solution:

  • 不要なチャンネルは Scope で除外
  • 上流でResample CHOPを使用してサンプル数を削減
  • Duplicates 機能は必要な場合のみ使用

参考資料 📚

その他 🔗

公式リソース 📖

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