View on GitHub

cat-plugin-player

cat-plugin-player

ADR 0009: 自動sweepによるCC1の変更をFavorite重複判定から除外する

問題と決定

保存済み35件のうちFloeが11件、Vaporizer2が7件。FloeはRealistic Celtic Harp、Vaporizer2はAccent Arpで、主な差は自動演奏のCC1が動かすMacro 1だった。configのsequence_modulationはsweep。

復元用stateを加工せず、sweep由来の値だけを重複判定から除外する。音色パラメータの変更、pluginの形式・ID・役割、楽器の演奏パターンの違いは引き続き別Favorite。既存項目を再利用する場合は名前・ID・元stateを保つ。既存ライブラリの一括整理・削除は行わない。

自動CC1の由来

audio callbackは、成功したprocessへ実際に渡したCC1イベントの由来を記録する。sweep、固定値、未送信を区別する。設定でsweepを選ぶだけでは除外を許可しない。

pause時はstreamを停止してcallbackの完了を待ち、その由来を楽器instanceに引き継ぐ。音声再接続でまだイベントが送られていない場合は前の由来を保持する。固定値のCC1送信でsweep由来を解除し、Favoriteのstate読み込みでも解除する。復元に失敗して旧stateを戻す場合は旧由来も戻す。

手動FavoriteとAuto Favoは同じ判定を使う。Effectのstateへこの除外は適用しない。

Floeの適用条件

Vaporizer2の適用条件

制限と撤去条件

送信元はhostのCC1まで追跡し、plugin内部の各parameter変更の送信元は追跡しない。sweepがMacro 1を制御している間のMacro 1手動編集も比較から除外される。sweep由来がない保存ではMacro 1の差を残す。

復元用ファイルには最初に保存した瞬間のMacro値を保持する。音色用stateから自動演奏の値を分離する標準APIが利用可能になったら、本例外の置き換えを検討する。Floeの未知の版や別製品に適用範囲を広げる前に再測定する。

TyrellN6 UI_opの調査

確認済み9/10の比較はADR 0011で扱う。以下はその前提となる調査結果。

検証