
概要 📖 – チャンネルの切り取りと差し込み
Splice CHOPは、入力チャンネルの一部を切り取り、別の入力 CHOP を差し込んで再合成する CHOPです。Start / Trim Length / Insert Method の組み合わせで、波形編集やフレーズ差し替えを 1 オペレータで完結します。
主な用途 🎯
- 1 本目のチャンネルから指定範囲を切り取る(Trim)
- 切り取った隙間に 2 本目の入力 CHOP を差し込む(Insert)
- 切り取った部分だけを単独で出力する(Output Trimmed Section)
- Samples / Frames / Seconds の単位で精密に範囲指定
- 差し込みデータの長さを伸縮(Stretch)または周期化(Cycle)して合成
データフロー 🔄
入力 1: ベースのチャンネル
↓
Start 位置から Trim Length 分を切り取り
↓
Insert Method に従って入力 2 を差し込み / 補間
↓
出力: 編集後のチャンネル
初心者の方は、以下日本語書籍も手元にあると安心です。

実際の案件事例まで踏み込んで紹介されていて、効率よくスキルアップするなら必携の二冊です!
パラメータ解説 ⚙️
Splice Page 📋
Output Trimmed Section .outputtrimmed ✂️
出力対象を「編集後のチャンネル」か「切り取った断片」かで切り替える
| 項目 | 内部名 | 説明 |
|---|---|---|
| Output Trimmed Section | .outputtrimmed |
オフ: パラメータに従って切り取りと差し込みを行った結果を出力。オン: 切り取った断片のみを単独で出力。 |
Direction .direction 🧭
Start / Trim パラメータをチャンネルのどちら側から数えるかを指定
| 項目 | 内部名 | 説明 |
|---|---|---|
| First to Last | .firsttolast |
チャンネルの先頭から終端へ向かう方向で Start / Trim を計算 |
| Last to First | .lasttofirst |
チャンネルの終端から先頭へ向かう方向で Start / Trim を計算 |
Start .start 📍
切り取りと差し込みを開始する位置:
- Start 値: Trim / Insert 操作の開始位置(Direction により先頭または終端からの距離)
Start Units .startunits 📐
| 項目 | 内部名 | 説明 |
|---|---|---|
| Start Units | .startunits |
Start パラメータの単位として Samples / Frames / Seconds のいずれかを選択 |
Trim Method .trimmethod 🔧
切り取り長さの決定方法
| 項目 | 内部名 | 説明 |
|---|---|---|
| Use Trim Length | .trimlength |
下記の Trim Length パラメータの値で切り取り長さを決定 |
| Trim to Insert Input Length | .insertlength |
2 本目の入力 CHOP の長さで自動的に切り取り長さを決定 |
Trim Length .trimlength 📏
切り取る区間の長さ:
- Trim Length 値: 切り取る区間の長さ。Output Trimmed Section をオンにするとこの区間だけが出力される
Trim Length Units .trimlengthunits 📐
Trim Length パラメータの単位:
- Trim Length Units: Trim Length の単位として Samples / Frames / Seconds のいずれかを選択
Insert Method .insertmethod 🪡
2 本目の入力 CHOP を切り取った隙間にどのように差し込むかを決定
| 項目 | 内部名 | 説明 |
|---|---|---|
| None | .none |
差し込みを行わない(切り取りのみ) |
| Input Length | .natural |
2 本目の入力をそのままの長さで差し込み。Trim Length = 0 のときは両入力の長さの合計が出力長になる |
| Stretch to Trim Length | .stretchtrim |
2 本目の入力を切り取り区間の長さに合わせて伸縮。出力長は 1 本目の入力と同じ長さを維持 |
| Trim to Insert Length | .insertlength |
Insert Length パラメータで差し込みデータの長さを指定。短ければ切り取り、長ければ循環 |
| Stretch to Insert Length | .stretchinsert |
Insert Length パラメータの値に合わせて 2 本目の入力を伸縮 |
Insert Length .insertlength 📏
差し込みデータの長さ:
- Insert Length 値: 差し込みデータの長さ。Trim to Insert Length では値より長い 2 本目の入力は切り取られ、短ければ循環される。Stretch to Insert Length では値に合わせて伸縮
Insert Units .insertunits 📐
Insert Length パラメータの単位:
- Insert Units: Insert Length の単位として Samples / Frames / Seconds のいずれかを選択
Insert Interpolate .insertinterp 🌈
Stretch 系の Insert Method で 2 本目の入力を伸縮する際の補間方法
| 項目 | 内部名 | 説明 |
|---|---|---|
| None | .none |
補間しない(最近傍) |
| Linear | .linear |
線形補間 |
| Cubic | .cubic |
三次補間(滑らかな曲線) |
Match by .match 🔍
1 本目と 2 本目の入力チャンネルの対応付け方法
| 項目 | 内部名 | 説明 |
|---|---|---|
| Channel Number | .index |
チャンネルのインデックス順で対応付け |
| Channel Name | .name |
チャンネル名で対応付け |
Unmatched Chan Interpolate .unmatchedinterp 🎚️
Match by で対応付かなかったチャンネルの補間方法
| 項目 | 内部名 | 説明 |
|---|---|---|
| None | .none |
補間しない |
| Linear | .linear |
線形補間 |
| Cubic | .cubic |
三次補間 |
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: アニメーションカーブの一部を差し替え 🎬
Animation COMP (base) → Splice CHOP ← Animation COMP (replacement) → Output
- 1 本目の入力にベースとなるアニメーションカーブを接続
- 2 本目の入力に差し替え用のカーブを接続
- Start = 30 frames、Trim Length = 60 frames、Insert Method = Stretch to Trim Length に設定
- 30 フレーム目から 60 フレーム分が差し替え用カーブに置換される
Example 2: オーディオフレーズの差し込み 🎵
Audio File In CHOP (base) → Splice CHOP ← Audio File In CHOP (sting) → Audio Device Out CHOP
- 1 本目にメインのオーディオファイル CHOP を接続
- 2 本目に差し込む短いスティング音 CHOP を接続
- Start Units = Seconds、Start = 5.0、Insert Method = Input Length に設定
- メイン音声の 5 秒地点にスティングがそのままの長さで挿入される
Example 3: 切り取った断片だけを取り出して再利用 📦
入力 CHOP → Splice CHOP (Output Trimmed Section = On) → Trail CHOP
- ソースとなる長尺の CHOP を 1 本目に接続
- Output Trimmed Section をオンに、Start / Trim Length で抜き出したい区間を指定
- 出力には切り取られた区間のチャンネルだけが現れる
- Trail CHOP 等で時間的に可視化して波形検証
関連オペレータ 🔗
類似機能OP 🔍
- Stretch CHOP — チャンネル全体を引き伸ばす(部分差し込みは不可)
- Trim CHOP — 範囲の切り取りのみ(差し込みは不可)
組み合わせ推奨OP 🔄
- Math CHOP — 差し込みデータを Mult-Add / Range で前処理してから Splice
- Filter CHOP — 差し込み境界のクリックノイズを Filter で平滑化
- Resample CHOP — 2 入力のサンプルレートを揃えてから Splice
- Trail CHOP — Splice 出力の時間履歴を可視化
前処理・後処理CHOP 🎯
Info CHOP情報 📊
Splice 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:
- Insert Interpolate を Linear または Cubic に設定して補間
- 後段に Filter CHOP (1-frame Boxcar 等) を入れて境界を平滑化
- 1 本目と 2 本目の値域 (low / high) が大きく異なる場合は事前に Math CHOP で揃える
❌ Problem: 出力の長さが想定と違う
✅ Solution:
- Insert Method = Input Length では「1 本目 + 2 本目 – 切り取り長」が出力長になる仕様を確認
- Insert Method = Stretch to Trim Length なら出力長は 1 本目と同じ長さに維持される
- Output Trimmed Section をオンにすると出力は切り取った断片の長さのみになる
❌ Problem: Start / Trim Length が思った位置にこない
✅ Solution:
- Direction が First to Last か Last to First かを確認(後者は終端からの距離)
- Start Units / Trim Length Units が Samples / Frames / Seconds のどれになっているか確認
- サンプルレートが異なる入力では Resample CHOP で揃えてから Splice を使う
❌ Problem: 2 本目の入力チャンネルが反映されない
✅ Solution:
- Match by を Channel Number / Channel Name のどちらにしているか確認
- Channel Name モードでは 1 本目と 2 本目のチャンネル名が一致している必要がある
- 未マッチのチャンネルは Unmatched Chan Interpolate の設定に従って補間される
参考資料 📚
その他 🔗
- TouchDesigner Wiki — CHOP 概要
- TouchDesigner Wiki — Category:CHOPs
- TouchDesigner Wiki ホーム
- TouchDesigner 公式 Forum
- Facebook — TouchDesigner Help Group

