View on GitHub

cat-plugin-player

cat-plugin-player

ADR 0007: Surge XTのFavorite重複比較

状態: 採用

根拠

Auto Favoの3〜5付近で同じ音色が増える報告を受け、保存済みstateを読み取り専用で比較した。

上流1.3.4のSurgePatch.cppはmodwheelにControllerModulationSourceのtarget値、instanceZoomFactorにeditor拡大率を保存する。 stateは32バイトsub3ヘッダ、指定長XML、6枠のwavetableデータからなる。 ローカルVST3の2件には末尾に16バイトのゼロとJUCEPrivateDataがある。

決定

src/plugin_specific/surge_xt.rsに製品固有比較を置く。 対象IDはCLAP org.surge-synth-team.surge-xtとVST3 ABCDEF019182FAEB566D624153675854。 sub3ヘッダ、長さ、UTF-8、単一rootのpatch revision 24を確認する。 VST3のみ測定済みの固定JUCE末尾データを許可し、比較にも完全一致を要求する。 XMLの構造、属性名・順序、テキスト、その他の値、wavetable長と全バイトは一致を要求する。 上記の正確なパスの属性だけ比較から除外する。 CC1は有限の0〜1、拡大率は整数-1または1〜1000のみ許可する。 未知製品・形式・revision、不正長・XML、未知末尾データは共通処理のバイト完全一致に戻す。

プラグイン形式・ID・役割・演奏パターンの一致条件を維持する。 同一なら既存のID、名前、番号、保存済みstateを再利用する。保存・復元は元データ全体を使う。 既存Favoritesの削除や書き換えは行わない。 CC1位置による演奏上の音の差を別音色としない制限がある。 モジュレーションのルーティング・深さ、ピッチ、チューニング、他のdawExtraStateは除外しない。 上流で安定した音色用stateを取得できるようになれば撤去を検討する。 別revisionへ広げる前は保存差の調査と実機検証が必要。

検証