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

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

Delete CHOP のチャンネル/サンプル削除機能を示す図

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

概要 📖 – チャンネル・サンプルの選択削除

Delete CHOPは、入力チャンネルから不要なチャンネル・サンプルを条件指定で削除する CHOPです。チャンネル単位(Channels Page)とサンプル単位(Samples Page)の 2 段階の削除条件を 1 オペレータで完結します。

主な用途 🎯

  • チャンネル単位の削除(名前パターンや番号指定で不要なチャンネルを除去)
  • サンプル単位の条件削除(値の閾値・範囲条件に合致するサンプルを除外)
  • 定数チャンネルの整理(全サンプルが同値のチャンネルを自動除去)
  • パターンマッチによるフィルタリングt*[1-10] 等で対象を絞込)
  • スコープ反転による抽出(指定チャンネル以外を残す=抽出用途にも転用可能)

データフロー 🔄

入力: 任意 CHOP のチャンネル

Channels Page(名前 / 番号 / 値域 / 定数で対象選別)

Samples Page(比較条件でサンプル削除)

出力: フィルタ済みチャンネル

Tips

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

まる。
まる。

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


パラメータ解説 ⚙️

Channels Page 📁

Delete Channels .delchannels 🎛️

チャンネル削除機能のオン/オフ切替

項目 内部名 説明
Delete Channels .delchannels オンでチャンネル削除を有効化。オフだと Channels Page の他パラメータは無視される。

Delete .discard 🎛️

スコープに合致したチャンネルを削除するか、逆に残すかの選択

項目 内部名 説明
Scoped Channels .scoped スコープ対象のチャンネルを削除し、それ以外を出力
Non-scoped Channels .nonscoped スコープ対象のチャンネルを出力し、それ以外を削除(抽出モード)

Select Channels .select

対象チャンネルを名前で選ぶか番号で選ぶかの切替

項目 内部名 説明
By Channel Name .byname チャンネル名のパターン文字列で対象を選択
By Channel Number .bynum チャンネルのインデックス番号で対象を選択

Channel Names .delscope 🔤

対象チャンネルの名前パターン(Pattern Matching):

  • Channel Names パターン: 対象チャンネル名を Pattern Matching で指定。デフォルト t*tx / ty / tzt で始まる全チャンネルにマッチ

Channel Numbers .selnumbers 🔢

対象チャンネルのインデックス番号パターン:

  • Channel Numbers パターン: 対象チャンネルのインデックス番号を指定。0 1 4(1・2・5番目)/ [0-4](最初の5チャンネル)/ [3-9:2](3,5,7,9番目)等のパターンが利用可能

Channel Value .chanvalue 📏

チャンネル全体の値が指定範囲に対してどう位置するかで対象を絞込む

項目 内部名 説明
Off .off 値域による絞込みを行わない
Channel Completely Within Range .complete 全サンプルが指定範囲内にあるチャンネルを対象とする
Channel Partially Within Range .partial 1 サンプル以上が指定範囲内にあるチャンネルを対象とする
Channel Completely Outside Range .outside 全サンプルが指定範囲外にあるチャンネルを対象とする

Value Range .selrange 📐

Channel Value 判定に用いる値域:

  • Value Range(low, high): Channel Value の Range Selection で参照する範囲の下限と上限

Select Constant Valued Channels .selconst 🔍

定数値チャンネルの選択:

  • Select Constant Valued Channels: オンにすると全サンプルが同値のチャンネルを対象として選択(定数チャンネルの自動整理用)

Samples Page 📁

Delete Samples .delsamples 🎛️

サンプル削除機能のオン/オフ切替

項目 内部名 説明
Delete Samples .delsamples オンでサンプル削除を有効化。オフだと Samples Page の他パラメータは無視される。

Channels to Compare .compchans

比較基準とするチャンネルの選び方

項目 内部名 説明
By Channel Name .byname チャンネル名パターンで比較対象を選択
By Channel Number .bynum インデックス番号で比較対象を選択

Channel Names (Compare) .compnames 🔤

比較対象チャンネル名のパターン:

  • Compare Channel Names パターン: 比較対象チャンネル名を Pattern Matching で指定

Channel Numbers (Compare) .compnums 🔢

比較対象チャンネルのインデックス番号:

  • Compare Channel Numbers: 比較対象チャンネルのインデックス番号(デフォルト 0 = 最初のチャンネル)

Multi-Compare Channels .compmulti 🔗

比較チャンネルが複数あるときの値の集約方法

項目 内部名 説明
Any Chan in Range .any 比較チャンネルのいずれかが条件に合致したらサンプル削除
All Chans in Range .all 比較チャンネル全てが条件に合致したらサンプル削除
Add .add 比較チャンネルを加算した結果が条件に合致したら削除
Subtract .sub 最初のチャンネルから残りを減算した結果が条件に合致したら削除
Multiply .mul 全比較チャンネルを乗算した結果が条件に合致したら削除
Divide .div 最初のチャンネルを残りで除算した結果が条件に合致したら削除
Average .avg 比較チャンネルの平均値が条件に合致したら削除
Minimum .min 比較チャンネルの最小値が条件に合致したら削除
Maximum .max 比較チャンネルの最大値が条件に合致したら削除
Length .len 比較チャンネルをベクトル化した長さが条件に合致したら削除

Delete Condition .condition 🎛️

サンプル削除の判定条件(Value 1 / Value 2 との関係)

項目 内部名 説明
Less Than Value 1 .less 比較サンプルが Value 1 未満なら削除
Greater Than Value 1 .greater 比較サンプルが Value 1 を超過したら削除
Equal to Value 1 .equal 比較サンプルが Value 1 と等しい場合に削除
Not Equal to Value 1 .notequal 比較サンプルが Value 1 と等しくない場合に削除
Inside Range .inside 比較サンプルが Value 1 と Value 2 の範囲内にある場合に削除
Outside Range .outside 比較サンプルが Value 1 と Value 2 の範囲外にある場合に削除

Value 1 / Value 2 .values 📐

Delete Condition で参照する閾値および境界の inclusivity(境界値を含めるかどうか)

Value 1 .value1 1️⃣
– 削除条件で参照する第 1 の閾値

Include Value 1 .inclvalue1 🔘
– Value 1 自身を境界に含めるかどうかの切替

Value 2 .value2 2️⃣
– Inside / Outside Range 判定で参照する第 2 の閾値

Include Value 2 .inclvalue2 🔘
– Value 2 自身を境界に含めるかどうかの切替

Delete Compare Channels .deletecomp 🎛️

比較チャンネルの取り扱い:

  • Delete Compare Channels: オンで比較チャンネルを出力から削除、オフで保持(条件判定後も残す)

One Sample if All Deleted .onesample 🔢

全削除時の保険:

  • One Sample if All Deleted: オンにすると全サンプル削除時でも 1 サンプル残し、後段の処理が空 CHOP で破綻するのを防止

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: translation チャンネルだけ抽出する 🎯

Object CHOP → Delete CHOP (Delete=Non-scoped, Channel Names=t*) → Output
  1. Object CHOP 等から多数のチャンネル(tx ty tz rx ry rz sx sy sz 等)を取得
  2. Delete CHOP の DeleteNon-scoped Channels に設定
  3. Channel Namest* を入力(tx / ty / tz だけが残る)
  4. 後段で位置だけを使うため不要な回転・スケールチャンネルが消える

Example 2: 閾値以下のサンプルを捨ててノイズフロアをカット 🔇

Audio Spectrum CHOP → Delete CHOP (Delete Samples, Less Than Value 1) → Analyze CHOP
  1. Audio Spectrum CHOP で周波数領域に変換
  2. Delete CHOP の Delete Samples をオン
  3. Delete ConditionLess Than Value 1Value 10.05 に設定
  4. 閾値未満の微小成分が除去され、後段の解析や可視化のノイズが減る

Example 3: 全サンプルが同値の冗長チャンネルを自動整理 🧹

Multi-source merge CHOP → Delete CHOP (Select Constant Valued Channels=ON) → Output
  1. 複数ソースをマージした CHOP に「常に 0」「常に 1」など定数チャンネルが混じる状況を想定
  2. Delete CHOP の Select Constant Valued Channels をオン
  3. DeleteScoped Channels に設定
  4. 出力には変動するチャンネルだけが残り、データ容量と後段処理コストが削減

関連オペレータ 🔗

類似機能OP 🔍

  • Select CHOP — 別 OP のチャンネルを名前パターンで取り込む(Delete の逆方向=抽出専用)
  • Reorder CHOP — 削除はせずチャンネル順序を並び替える(チャンネル整理の別アプローチ)
  • Rename CHOP — 削除せず名前を変えて意味づけを変更(Delete と同じ Pattern Matching を使用)

組み合わせ推奨OP 🔄

  • Math CHOP — Delete で残したチャンネルに対してのみ演算を集中
  • Analyze CHOP — Delete で対象を絞り込んだ上で統計値を抽出
  • Merge CHOP — 複数ソースを合流してから Delete で不要チャンネルを掃除する典型構成
  • Filter CHOP — Delete でサンプル間引き後に時系列スムージング
  • Logic CHOP — Delete の比較条件と組み合わせ、複雑な閾値判定を分担

前処理・後処理CHOP 🎯


Info CHOP情報 📊

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

  • Delete パラメータが Scoped(対象を削除)か Non-scoped(対象を残す)かを確認
  • Channel Names のパターンが Pattern Matching 仕様に合っているかチェック(t*t で始まる全て)
  • Select Channels が By Name / By Number のどちらに設定されているか確認

❌ Problem: 全サンプルが削除されて出力が空になる
✅ Solution:

  • One Sample if All Deleted をオンにして 1 サンプルを保険として残す
  • Delete Condition と Value 1 / Value 2 の閾値設定を見直し、入力データの実レンジと整合させる
  • 前段に Math CHOP を入れて値域を整えてから Delete に渡す

❌ Problem: 比較チャンネル自体が出力に残ってしまう / 消えてしまう
✅ Solution:

  • Delete Compare Channels のオン/オフを意図に合わせて切替(オンで削除、オフで保持)
  • 比較に使うチャンネルと残したいチャンネルを別系統に分けて Merge CHOP で合流させる構成も検討
  • Channels Page と Samples Page を同一 Delete で兼用せず、必要なら 2 段に分けて責務を分離

❌ Problem: サンプルレートの異なる複数 CHOP を入力したらエラーや想定外の挙動
✅ Solution:

  • Common Page の Sample Rate Match を入力レート構成に合わせて選択(First / Max / Min / Error)
  • 前段で Resample CHOP を使い明示的にレートを揃える
  • Time Slice モードの有無で挙動が変わるため Common Page の Time Slice 設定も確認

参考資料 📚

その他 🔗

公式リソース 📖

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