
概要 📖 – チャンネル・サンプルの選択削除
Delete CHOPは、入力チャンネルから不要なチャンネル・サンプルを条件指定で削除する CHOPです。チャンネル単位(Channels Page)とサンプル単位(Samples Page)の 2 段階の削除条件を 1 オペレータで完結します。
主な用途 🎯
- チャンネル単位の削除(名前パターンや番号指定で不要なチャンネルを除去)
- サンプル単位の条件削除(値の閾値・範囲条件に合致するサンプルを除外)
- 定数チャンネルの整理(全サンプルが同値のチャンネルを自動除去)
- パターンマッチによるフィルタリング(
t*や[1-10]等で対象を絞込) - スコープ反転による抽出(指定チャンネル以外を残す=抽出用途にも転用可能)
データフロー 🔄
入力: 任意 CHOP のチャンネル
↓
Channels Page(名前 / 番号 / 値域 / 定数で対象選別)
↓
Samples Page(比較条件でサンプル削除)
↓
出力: フィルタ済みチャンネル
初心者の方は、以下日本語書籍も手元にあると安心です。

実際の案件事例まで踏み込んで紹介されていて、効率よくスキルアップするなら必携の二冊です!
パラメータ解説 ⚙️
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/tz等tで始まる全チャンネルにマッチ
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
- Object CHOP 等から多数のチャンネル(tx ty tz rx ry rz sx sy sz 等)を取得
- Delete CHOP の Delete を
Non-scoped Channelsに設定 - Channel Names に
t*を入力(tx / ty / tz だけが残る) - 後段で位置だけを使うため不要な回転・スケールチャンネルが消える
Example 2: 閾値以下のサンプルを捨ててノイズフロアをカット 🔇
Audio Spectrum CHOP → Delete CHOP (Delete Samples, Less Than Value 1) → Analyze CHOP
- Audio Spectrum CHOP で周波数領域に変換
- Delete CHOP の Delete Samples をオン
- Delete Condition を
Less Than Value 1、Value 1 を0.05に設定 - 閾値未満の微小成分が除去され、後段の解析や可視化のノイズが減る
Example 3: 全サンプルが同値の冗長チャンネルを自動整理 🧹
Multi-source merge CHOP → Delete CHOP (Select Constant Valued Channels=ON) → Output
- 複数ソースをマージした CHOP に「常に 0」「常に 1」など定数チャンネルが混じる状況を想定
- Delete CHOP の Select Constant Valued Channels をオン
- Delete を
Scoped Channelsに設定 - 出力には変動するチャンネルだけが残り、データ容量と後段処理コストが削減
関連オペレータ 🔗
類似機能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 🎯
- 前処理: Merge CHOP、Math CHOP、Filter CHOP、Audio Spectrum CHOP
- 後処理: Analyze CHOP、Logic CHOP、Resample CHOP、Null CHOP
Info CHOP情報 📊
Delete 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: 想定したチャンネルが残らない / 想定外のチャンネルが消える
✅ 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 設定も確認
参考資料 📚
その他 🔗
- TouchDesigner Wiki — CHOP 概要
- TouchDesigner Wiki — Category:CHOPs
- TouchDesigner Wiki ホーム
- TouchDesigner 公式 Forum
- Facebook — TouchDesigner Help Group

