
概要 📖 – 指定タイミングでの瞬時パルス信号生成
Pulse CHOPは、指定したサンプル位置に瞬時パルス(インパルス)を生成する CHOPです。Start / End / Sample Rate でタイムベースを定義し、Pulse 0 以降のパラメータに列挙したサンプル位置にだけ値が立つチャンネルを出力します。
主な用途 🎯
- 特定タイミングでの瞬時パルス生成(指定サンプル位置に1サンプルだけ立ち上がる信号)
- イベント駆動のトリガー信号(後段の Trigger CHOP / Count CHOP との連携起点)
- シーケンス制御用の周期パルス(タイムライン上の決まったフレームで発火)
- 音響・映像エフェクトのキュー出し(指定タイミングで Trigger エンベロープを叩く)
- テスト用の既知パターン生成(フィルタ・遅延系の応答確認用インパルス)
データフロー 🔄
入力: パルス位置リスト (Pulse 0, Pulse 1, ...)
↓
Start / End / Sample Rate で範囲とレート定義
↓
Extend Left / Extend Right で範囲外挙動を決定
↓
出力: 指定サンプル位置にだけ値が立つ単一チャンネル
初心者の方は、以下日本語書籍も手元にあると安心です。

実際の案件事例まで踏み込んで紹介されていて、効率よくスキルアップするなら必携の二冊です!
パラメータ解説 ⚙️
Values Page 🎯
パルス位置の列挙 .pulse 🎯
Pulse .pulse 🎯
– 立ち上げたいパルス位置のシーケンス
– Pulse 0 / Pulse 1 / Pulse 2 … と複数指定でき、それぞれ独立したサンプル位置で値が立つ
Pulse 0 .pulse0value 📍
– 最初のパルスを立てるサンプル位置
– 値は Start / End / Sample Rate で定義される範囲内のサンプル番号として解釈される
Channel Page 📋
Channel Names .channelname 🔤
Channel Names .channelname 🔤
– 生成するチャンネル名のパターン
– chan[1-20] のような記法で chan1 〜 chan20 の 20 チャンネルを一括生成可能
Start / End / Sample Rate .interval 📏
Start .start ▶️
– インターバルの開始位置
– Start Unit で単位を Samples / Frames / Seconds から選択
End .end ⏹️
– インターバルの終了位置
– End Unit で単位を Samples / Frames / Seconds から選択
Sample Rate .rate ⚡
– チャンネルのサンプルレート(samples per second)
– デフォルトは me.time.rate(プロジェクトのタイムラインレートに追従)
Start Unit .startunit 📐
Start パラメータの単位選択
| 項目 | 内部名 | 説明 |
|---|---|---|
| Samples | .samples |
サンプル単位で指定 |
| Frames | .frames |
フレーム単位で指定 |
| Seconds | .seconds |
秒単位で指定 |
End Unit .endunit 📐
End パラメータの単位選択
| 項目 | 内部名 | 説明 |
|---|---|---|
| Samples | .samples |
サンプル単位で指定 |
| Frames | .frames |
フレーム単位で指定 |
| Seconds | .seconds |
秒単位で指定 |
Extend Left .left ⬅️
インターバル開始より前の領域における値の延長方法
| 項目 | 内部名 | 説明 |
|---|---|---|
| Hold | .hold |
チャンネル開始時の値を保持 |
| Slope | .slope |
チャンネル開始時の傾きを継続 |
| Cycle | .cycle |
チャンネルを繰り返しサイクル |
| Mirror | .mirror |
サイクルごとに反転して繰り返し |
| Default Value | .default |
Default Value パラメータの定数値を使用 |
Extend Right .right ➡️
インターバル終了より後の領域における値の延長方法
| 項目 | 内部名 | 説明 |
|---|---|---|
| Hold | .hold |
チャンネル終了時の値を保持 |
| Slope | .slope |
チャンネル終了時の傾きを継続 |
| Cycle | .cycle |
チャンネルを繰り返しサイクル |
| Mirror | .mirror |
サイクルごとに反転して繰り返し |
| Default Value | .default |
Default Value パラメータの定数値を使用 |
Default Value .defval 🎚️
Default Value .defval 🎚️
– Extend Left / Extend Right で Default Value を選択したときに使用される定数値
– パルス位置以外のサンプルの基準値としても機能
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: 指定フレームでイベントを発火 🎬
Pulse CHOP → Trigger CHOP → エンベロープ出力
- Pulse CHOP の Start を 0、End を 600(10 秒 @60fps)、Sample Rate を 60 に設定
- Pulse 0 に 120、Pulse 1 に 300、Pulse 2 に 480 と指定して 3 つのパルスを配置
- 出力を Trigger CHOP に接続してエンベロープを叩く
- タイムライン上の指定フレームでアタック・リリースが発生する
Example 2: 周期的なメトロノーム信号生成 🥁
Pulse CHOP (複数 Pulse 等間隔) → Count CHOP → ビートカウンター
- Sample Rate を 60、Start を 0、End を 240 に設定(4 秒間)
- Pulse 0 / Pulse 1 / Pulse 2 / Pulse 3 を 60, 120, 180, 240 と等間隔で配置
- 出力を Count CHOP に接続してパルス数をカウント
- 1 秒ごとにカウントが進むメトロノーム的な制御信号として活用
Example 3: フィルタ応答テスト用インパルス 📊
Pulse CHOP (単発インパルス) → Filter CHOP → 応答波形の可視化
- Start 0 / End 480 / Sample Rate 480 で 1 秒分のチャンネルを定義
- Pulse 0 に 0 を指定して先頭にだけ立つ単発インパルスを生成
- 出力を Filter CHOP に通してインパルス応答を観測
- Filter の Type / Width を変えながら時定数の挙動を確認できる
関連オペレータ 🔗
類似機能OP 🔍
- Constant CHOP — 値を一定保持する CHOP、Pulse とは逆に「常時値あり」
- Pattern CHOP — 矩形・三角・ノコギリ等の周期波形を生成
- Beat CHOP — BPM 同期のビート信号生成、テンポ駆動のパルス発生
組み合わせ推奨OP 🔄
- Trigger CHOP — Pulse のパルスでエンベロープを起動
- Count CHOP — Pulse の発火回数をカウントしてシーケンス制御
- Filter CHOP — Pulse をインパルス応答の入力源として時定数を観測
- Math CHOP — Pulse の出力値をスケーリングして他の信号と結合
- Logic CHOP — Pulse を条件判定の入力として論理演算
前処理・後処理CHOP 🎯
Info CHOP情報 📊
Pulse 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: Pulse 0 に指定した値の位置にパルスが立たない
✅ Solution:
- Pulse 0 の値は Start / End / Sample Rate で定義された範囲内のサンプル番号として解釈されるため、範囲外を指定すると無視される
- Start Unit / End Unit と Pulse 0 の単位が一致しているか確認(Frames 指定時は Sample Rate と framerate の関係に注意)
- Sample Rate がプロジェクトの
me.time.rateと異なる場合、想定したフレーム位置とずれることがある
❌ Problem: 範囲外のサンプルで意図しない値が出る
✅ Solution:
- Extend Left / Extend Right の設定を確認(デフォルト Hold だと開始・終了値が範囲外まで保持される)
- 範囲外を 0 に固定したい場合は Extend Left / Extend Right を
Default Valueにし Default Value を 0 に設定 - 周期的なパルス列を欲しい場合は Extend Right を
Cycleに設定
❌ Problem: 複数 Pulse を指定したが全部立ち上がらない
✅ Solution:
- Pulse 0 / Pulse 1 / … のパラメータが正しく増えているか確認(UI 右の + アイコンで追加)
- 同一サンプル位置に複数 Pulse を指定すると値が重なって 1 つに見えることがある
- 前段に Math CHOP を入れて出力を可視化し、各パルスの位置を確認
❌ Problem: 後段 Trigger CHOP が反応しない
✅ Solution:
- Trigger CHOP の Threshold が Pulse の振幅より高くないか確認
- Time Slice モードで Pulse の発火タイミングがフレーム境界とずれていないか確認
- Pulse CHOP と Trigger CHOP のサンプルレートが一致しているか、または Sample Rate Match で揃っているか確認
参考資料 📚
その他 🔗
- TouchDesigner Wiki — CHOP 概要
- TouchDesigner Wiki — Category:CHOPs
- TouchDesigner Wiki ホーム
- TouchDesigner 公式 Forum
- Facebook — TouchDesigner Help Group

