ADR 0016: auto favoをHistoryへ変更する
- 状態: 採用
背景
同じ音色でもプラグインのstateが変化し、同一と判定しきれない問題が繰り返し発生している。製品固有の比較例外で音色比較の失敗に対応し続けることにはキリがなく、自動お気に入りとして完全な重複排除を求める仕様を見直す。
決定
- auto favoをHistory機能へ変更する。手動のFavoritesは継続する。
- 自動記録のタイミングと、既存の音色比較・停止時の比較ルールは維持する。比較処理や依存ライブラリへの追加補修はこの変更では行わない。
- 自動記録はHistoryタブへ表示する。同一と判定できた場合は新規スナップショットを作らず、既存の音色の登録時刻を更新し、最新として先頭へ移す。ID・名前・保存state・演奏パターンは保持する。
- Historyは最新の登録時刻順に表示する。呼び出しだけでは登録時刻を変更しない。
- HistoryにはRename・Deleteの操作メニューを表示しない。これらの操作はFavoritesに残す。
- 登録からの経過時間をs、m、h、d、w、mon、yで短く表示する。月は30日、年は365日とし、1秒未満は1sと表示する。
- 手動Favoriteと一致する自動記録は、同じスナップショットをFavoritesとHistoryの両方へ表示する。Historyを手動保存した場合も両方に表示する。
- 保存先は既存のfavoritesディレクトリを使用し、メタデータに所属と履歴登録時刻を追加する。
既存データ
旧形式の全スナップショットをHistoryへ表示する。名前がauto で始まる項目はFavoritesから移す。元のIDと名前とstateはそのまま保持する。旧Effect項目を削除していた移行処理も撤去し、Historyとして保持する。旧Effectの演奏パターンは現在のEffect仕様どおり復元には使わず、メタデータの再保存時に省略する。登録時刻はIDに含まれる作成時刻を復元し、利用できなければsnapshotファイルの更新時刻を使う。どちらも不明なら?と表示する。旧データには最後の再登録時刻がないため復元できない。
旧形式には自動保存の出自を記録するフラグがない。名前変更済みの自動保存と手動保存は識別できないため、名前で自動保存と判別できない項目はFavoritesにも保持する。手動保存分もHistoryに表示されるが、名前変更済みの自動保存を含めて既存のauto favをすべてHistoryに表示することを優先する。以後は名前変更に依存しない所属フラグを保存する。
結果
既存ローカルデータの一度限りの移行
ユーザーは、この時点でHistoryにある音色をすべてFavoritesに残したいと指定した。アプリ終了中に索引をバックアップし、現在のHistory全30件をfavorite = true、history = falseへ変更する。名前・ID・登録時刻・保存state・演奏パターンは保持する。起動時に繰り返す移行処理は追加せず、以後の自動記録はHistoryへ入れる。
比較で区別されるstateは別の履歴として残る。完全な同一音色判定を新たな仕様保証とせず、利用履歴として受け入れる。既存の比較が同一と判定する範囲では履歴を再利用できる。