
概要 📖 – 拍に同期してパルスを出す
Beat CHOPは、Time COMP のテンポに同期した 0-1 ランプ・パルス・サイン波などを Bar / Beat / Sixteenth 周期で生成する CHOPです。Update Global によってプロジェクト全体で 1 つのマスタービートソースを確立でき、複数の Beat CHOP を Locked to Global モードで同期させることでオーディオビジュアル演出のテンポ基盤として機能します。
主な用途 🎯
- Time COMP のテンポ(BPM)に同期した
0-1ランプ波生成(VJ・映像演出のテンポ駆動) - 1 拍ごとの
Pulse/Sine波形による周期的アニメーション制御 - 現在の
Bar/Beat/Sixteenthsインデックスをチャンネルとして取得 Multiples+Shift Stepによる複数チャンネルの位相ずらし(ステップシーケンサ的活用)Update Globalでプロジェクト全体のマスタービートソースを 1 個確立し全 Beat CHOP を同期
データフロー 🔄
入力: Time COMP の BPM / Bar / Beat
↓
Reference Operator で参照
↓
Period(拍数)でランプ周期決定
↓
Multiples / Shift Step で複数チャンネル展開
↓
Output Page で波形種別を toggle
↓
出力: 同期ランプ / Pulse / Sine / Count / BPM チャンネル
初心者の方は、以下日本語書籍も手元にあると安心です。

実際の案件事例まで踏み込んで紹介されていて、効率よくスキルアップするなら必携の二冊です!
パラメータ解説 ⚙️
Beat Page 🥁
Reference Operator .reference_node 🔗
Beat CHOP が時間設定を参照する Time COMP の指定:
- Reference Operator パス: 時間設定を参照する Time COMP のパス。時間は
timepath("reference_node")で取得される Time COMP によって定義される
Use Reference Time Slice .reftimeslice ⏱️
Reference Node のタイムスライスを使用するかどうか:
- オン: Reference Node が使用しているタイムスライスをそのまま使用
- オフ: Beat CHOP 自身のタイムスライスを使用
Play Mode .playmode ▶️
出力の再生方法を指定するモードメニュー
| 項目 | 内部名 | 説明 |
|---|---|---|
| Locked to Global | .global |
Global ビートソースに同期。Update Global がオンの Beat CHOP に追従 |
| Local Sequential | .local |
タイムライン位置に関係なく連続出力を生成(ローカル独立再生) |
Period .period 🔁
ランプ 1 サイクルを生成するのに必要な拍数:
- Period(拍数): ランプ 1 サイクルあたりの拍数。プルダウンメニューから一般的な拍数を選択するか、数値で直接指定
Multiples .multiples 🔢
生成するチャンネル数:
- Multiples: 出力チャンネル数。複数のランプを並行して生成したいときに使用
Shift Offset .shiftoffset ⏩
全チャンネルを一律に時間方向へ遅延させるオフセット:
- Shift Offset: 全チャンネルを遅延させる量。
0= 変化なし、0.5= 1 周期の 50% 後
Shift Step .shiftstep 🪜
チャンネル間の段階的な位相ずらし:
- Shift Step:
1+ Multiples = 5 のとき、各ランプチャンネルは前のチャンネルから 1/5 サイクル遅れる。0.1なら 1/50 サイクルの遅延。チャンネル間で段階的にずらしたいときに使用
Random Offset .randoffset 🎲
各ランプを完全周期からランダムに時間シフトさせる量:
- Random Offset: 各ランプを完全な周期から相対的にランダムシフトさせる量
Random Seed .randseed 🌱
ランダムオフセットのシード値:
- Random Seed: 値を変更すると Random Offset で生成されるオフセットのセットが変化
Reset Condition .resetcondition 🔄
Reset 入力でチャンネルがリセットされる条件
| 項目 | 内部名 | 説明 |
|---|---|---|
| Off to On | .offtoon |
Reset 入力が off → on になった瞬間にリセット |
| While On | .on |
Reset 入力が on の間リセット状態を保持。入力が off になるまでリセット値を保持 |
| On to Off | .ontooff |
Reset 入力が on → off になった瞬間にリセット |
| While Off | .off |
Reset 入力が off の間リセット状態を保持。入力が on になるまでリセット値を保持 |
Reset Bar Value .resetbarvalue 📐
Reset Condition 発火時にジャンプする Bar 値:
- Reset Bar Value: Reset Condition が満たされたとき Beat CHOP がジャンプする Bar の値。Beat 値はこの値の小数部から導出される
Wait after Reset .resetwait ⏸️
While On Reset Condition 使用時のリセット後の待機挙動:
- オン: 次の Bar が始まるまでチャンネルを 0 で保持し、その後出力を再開
- オフ: リセット条件が解除された直後から出力を再開
Reset .reset 🔘
ランプを 0 にリセットするボタン:
- Reset: オンの間ランプを 0 にリセット。Beat CHOP の入力が 0 を超えているときも 0 になる
Reset Pulse .resetpulse 💥
ランプを瞬時に 0 にリセットするパルスボタン:
- Reset Pulse: ランプを瞬時に 0 にリセット
Update Global .updateglobal 🌐
プロジェクト全体のマスタービートソースとして指定するスイッチ:
- Update Global: オンにすると、その Beat CHOP がプロジェクト全体のマスタービートソースとなる。
/local/master_beatに参照 Beat CHOP が作成され(既存なら再利用)、他の Beat CHOP はPlay Mode: Locked to Globalでこれに同期可能 - 1 toe につき 1 個のみ: Update Global がオンのマスター Beat CHOP は 1 toe ファイル内に正確に 1 個のみ存在できる
- $MASTER_BEAT 変数:
$MASTER_BEAT変数は Update Global がオンの Beat CHOP のパスにセットされる
Output Page 📤
出力チャンネル切替トグル 🎚️
Output Page では出力するチャンネル種別を個別にオン/オフで切り替える。複数同時オン可能で、それぞれが別チャンネルとして出力される
Ramp .ramp 📈
– Period ごとに 0 から 1 まで上昇するランプ波を出力
– 一般的なテンポ駆動アニメーションで最も多用される基本波形
Pulse .pulse 📊
– Period ごとに 1 サンプルだけ 1 となるパルス波を出力
– トリガー駆動・拍頭の検出に使用
Sine .sine 🌊
– Period ごとに 1 サイクルのサイン波を出力
– 連続的・滑らかな揺らぎの周期信号として活用
Count .count 🔢
– Period ごとにカウント値を 1 増加
– 経過拍数の累積カウンタとして使用
Count+Ramp .countramp 🪜
– Bar がリセットされるまでカウントアップするランプ
– Bar 単位の累積進捗値として活用
Bar .bar 📏
– 現在の Bar(小節)番号を出力
– 楽曲構造のセクション切替判定に使用
Beat .beat 🥁
– 現在の Beat(拍)番号を出力
– 拍頭イベント駆動に使用
Sixteenths .sixteenths 🎵
– 現在の Sixteenths(16 分音符)番号を出力
– 細かいリズム分割の同期に使用
Ramp Bar .rampbar 📈
– Bar ごとに 0 から 1 まで上昇するランプ波を出力
– Bar 1 周期に対する正規化された進捗値
Ramp Beat .rampbeat 📈
– Beat ごとに 0 から 1 まで上昇するランプ波を出力
– Beat 1 周期に対する正規化された進捗値
BPM .bpm 🎼
– 現在の BPM(Beats Per Minute)値を出力
– テンポ値そのものをチャンネル経由で他オペレータへ供給
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: テンポ同期した映像エフェクトの強度ランプ 🎬
Beat CHOP (Ramp, Period=1) → Math CHOP (To Range [0, 1.5]) → Level TOP (opacity)
Beat CHOP の Ramp 出力を映像のフェードイン・フェードアウトに使い、楽曲のテンポと完全同期したリズミカルな視覚演出を実現する基本パターン。
- Beat CHOP を作成し、Reference Operator に
/local/time等の Time COMP を指定 - Output Page で
Rampをオンにし、Period を1(拍ごとに 1 サイクル)に設定 - 後段の Math CHOP で出力レンジを必要な値域にスケーリング
- Level TOP の
opacityパラメータに Export して映像強度を拍に同期
Example 2: ステップシーケンサ風の位相ずらしランプ 🪜
Beat CHOP (Multiples=8, Shift Step=0.125) → Trigger CHOP → Audio Synth
Multiples で 8 チャンネルを生成し、Shift Step で各チャンネルを 1/8 拍ずつずらすことで、8 ステップのシーケンサ的なトリガー信号を 1 オペレータで構築できる。
- Beat CHOP の
Multiplesを8に設定(8 チャンネル生成) Shift Stepを0.125(= 1/8 拍)に設定し各チャンネルを段階的にずらす- Output Page で
Pulseをオンにして拍頭でのみ1となる信号を生成 - 後段の Trigger CHOP でエンベロープを起動しシーケンス再生
Example 3: Update Global でプロジェクト全体のテンポ基盤を構築 🌐
Master Beat CHOP (Update Global=On) → 各セクションの Beat CHOP (Locked to Global) → 全体同期
1 個のマスター Beat CHOP に Update Global を設定し、他の Beat CHOP を Locked to Global モードにすることで、プロジェクト全体のテンポを 1 箇所で集中管理できる。
- プロジェクトの基準となる Beat CHOP を 1 個作成し
Update Globalをオン - 他のセクション(VJ・照明・サウンド)で個別の Beat CHOP を配置
- それらの
Play ModeをLocked to Globalに設定 - マスターの BPM 変更が全 Beat CHOP に瞬時伝播し、プロジェクト全体が同期
関連オペレータ 🔗
類似機能OP 🔍
- LFO CHOP — 周波数指定での周期波形生成(Beat とは異なり Time COMP 同期ではなく Hz 直接指定)
- Pattern CHOP — サンプル数指定での波形パターン生成(拍同期なしの単発パターン)
- Timer CHOP — 秒単位のタイマー駆動信号生成(Beat より自由なタイミング制御)
組み合わせ推奨OP 🔄
- Math CHOP — Beat の
0-1ランプを任意の値域にスケーリング・オフセット - Filter CHOP — Beat の Pulse / Ramp を時間方向にスムージングして滑らかなアニメーション信号化
- Trigger CHOP — Beat の Pulse 出力でエンベロープを起動(拍頭でアタック・リリース駆動)
- Logic CHOP — Beat の Bar / Beat / Sixteenths インデックスを閾値判定し条件分岐に活用
- Switch CHOP — Beat の Bar 値で複数信号ソースを切替(楽曲セクションごとの演出切替)
前処理・後処理CHOP 🎯
Info CHOP情報 📊
Beat 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: Beat CHOP の出力が他の Beat CHOP と同期しない
✅ Solution:
- Play Mode が
Locked to Globalになっているか確認(Local Sequentialだと独立再生) - プロジェクト内に
Update Globalがオンの Beat CHOP が 1 個だけ存在することを確認(マスタービートソース) - 両 Beat CHOP の Reference Operator が同じ Time COMP を参照しているか確認
❌ Problem: Period を変えても出力が想定通りにならない
✅ Solution:
- Period の単位は「拍数」であり、秒数ではないことを確認(テンポに依存)
- Reference Operator の Time COMP の BPM 設定が想定と一致しているか確認
Multiples+Shift Stepの組合せで生成されるチャンネル数と位相関係を再計算
❌ Problem: Reset が想定したタイミングで動作しない
✅ Solution:
- Reset Condition のモード(Off to On / While On / On to Off / While Off)と入力信号の遷移パターンが整合しているか確認
- Reset Bar Value を確認し、ジャンプ先の Bar 値が意図通りか検証
- While On モードで
Wait after Resetをオンにすると、次の Bar 開始まで 0 保持となる挙動の差に注意
❌ Problem: Bar / Beat / Sixteenths の値が期待と違う
✅ Solution:
- Reference Operator の Time COMP に正しい
Tempo/Time Signature値が設定されているか確認 - Bar は 1 から開始するか 0 から開始するかは Time COMP の設定に従うため、参照先の仕様を確認
- 前段に Math CHOP を入れて値域変換やインデックス補正を行う
参考資料 📚
その他 🔗
- TouchDesigner Wiki — CHOP 概要
- TouchDesigner Wiki — Category:CHOPs
- TouchDesigner Wiki ホーム
- TouchDesigner 公式 Forum
- Facebook — TouchDesigner Help Group

