20-paths

データとファイルの置き場所

手書きページ。生成物ではないので直接編集してよい。
ただしパスの根拠は melodear-dsp/src/derived_data.rs / melodear-db/src/db_placement.rs /
melodear-gui/src/onboarding.rs にあるので、挙動を変えたときはここも直すこと。

「バックアップは何を取ればいいのか」「消していいのはどれか」を一枚で引けるようにしたページ。

いちばん短い答え

守りたいもの場所
設定(テーマ・ライブラリ登録・全設定)%APPDATA%\MeloDear\state.toml
ライブラリの中身(評価・タグ・解析結果・再生履歴)melodear.db(下の表)
音声ファイルそのものあなたが置いた場所。MeloDear は書き換えない(ADR-0008)

この 2 ファイルさえあれば復旧できる。それ以外はすべて作り直せる。

%APPDATA%\MeloDear\

アプリ全体の設定。ライブラリをいくつ開いていても 1 つ。

ファイル中身
state.toml全設定。キーの一覧は 設定ファイル state.toml
state.toml.1 .2 .3世代バックアップ。.1 が直前。壊れたとき .1 → .2 → .3 の順に試される
state.toml.corrupt-<日時>壊れた state.toml を退避したもの。復元に失敗したときの原因調査用
state.toml.tmp.<pid>書き込み中の一時ファイル。残っていたら異常終了の跡(消してよい)
version-policy-cache.json更新ポリシーの取得結果。消しても次回起動で取り直す

state.toml は設定を変えるたびとアプリ終了時に上書きされる。
起動中に手で書き換えても上書きで消えるので、直すならアプリを閉じてから。
書き込みは state.toml.tmp.<pid> に書いて sync してから rename する(途中で落ちても壊れない)。

ライブラリ DB — melodear.db

ライブラリ 1 つにつき 1 ファイル。置き場所は 2 通りあり、設定の「DB の置き場所」で選ぶ。

配置本体ミラー
InFolder(既定)<ライブラリ>\melodear.dbなし
FastDrive%LOCALAPPDATA%\MeloDear\libraries\<library-id>\melodear.db<ライブラリ>\melodear.db
FastDrive(任意ルート)<選んだルート>\<library-id>\melodear.db<ライブラリ>\melodear.db

フォルダを移動すると別 ID になるので、移動時は MeloDear 側で開き直す。

30 分アイドルするとライブラリフォルダ側へミラーを書く。ミラーは片方向(本体 → フォルダ)。

melodear.db.mirrorbak(ミラーの前世代)、melodear.db.snap.<unix秒>(スナップショット)、
melodear.db.bak(v1→v2 移行前のバックアップ)。
正常なら自動で消える。残っていたら消してよい(1 時間より古い一時ファイルはアプリが掃除する)。

派生データ — 作り直せるもの

置き場所は「熱さ」で 3 段に分かれている(storage-1)。

段中身場所
Tier H(ホット)artwork-cache.db / artwork/ / waveforms/既定は <ライブラリ>\.melodear\。FastDrive にすると %LOCALAPPDATA%\MeloDear\libraries\<id>\cache\(ミラーなし)
Tier C(コールド)file-backups/常に <ライブラリ>\.melodear\
Tier T(一時)spectrograms/ stems/ genre_batch.state<ライブラリ>\.melodear\

Tier H を FastDrive に切り替えると、...\cache\.placement というマーカーが置かれる。
これがあるかどうかで実行時のパス解決が決まるので、手で消さないこと。

.melodear\ フォルダはスキャン対象から外れている。ここに音声ファイルを置いても取り込まれない。

AI モデル

もの場所
ONNX モデル%LOCALAPPDATA%\MeloDear\models\
ONNX Runtime%LOCALAPPDATA%\MeloDear\runtime\
協調学習のキャッシュ%LOCALAPPDATA%\MeloDear\collab\(MELODEAR_COLLAB_DIR で差し替え)
旧い置き場(自動移行済み)~\.melodear\models ~\.melodear\runtime

環境変数 MELODEAR_MODELS_DIR / MELODEAR_RUNTIME_DIR で差し替えられる(→ 環境変数)。

onnxruntime.dll の探索順は **exe と同じフォルダ → %LOCALAPPDATA%\MeloDear\runtime\ →
C:\Program Files\onnxruntime\**。MELODEAR_ORT_DLL で直接指定もできる。

モデルの配布元は公開リポジトリ geshpoyo/MeloDear-releases の ml-models-v0.1.0 タグ。
インストーラに同梱されるもの(Bundled)と、初回利用時に取りに行くもの(OnDemand)がある。

インストール先と更新

もの場所
本体C:\Program Files\MeloDear\(MSI・全ユーザー)
インストール先の記録レジストリ HKLM\Software\geshtalt\MeloDear\InstallDir
アプリ内更新で落とした MSI%TEMP%\MeloDear-update\

%TEMP%\MeloDear-update\ は 7 日を過ぎたものをアプリが自動で消す。手で消しても問題ない。

レジストリの InstallDir は、アプリ内更新の[更新する]ボタンを出すかどうかの判定に使う。
インストール先と実行中の exe の場所が違えば、MSI での上書きはしない(=ボタンを出さない)。

ログ(不具合報告用)

もの場所
実行ログ(日次ローテーション)%LOCALAPPDATA%\MeloDear\logs\melodear.log.<YYYY-MM-DD>
クラッシュ時の panic レポート%LOCALAPPDATA%\MeloDear\logs\panic-<日時>.log

配布版はコンソールを持たないため、以前は起動時のログがどこにも残らなかった(2026-09-08 で追加)。
不具合報告のときは、この logs\ フォルダの最新ファイルを添えると原因が分かりやすい。
panic-*.log には落ちた瞬間のメッセージ・発生位置・直前のログ末尾が入る。
ログレベルは環境変数 MELODEAR_LOG(例 debug)で上げられる(→ 環境変数)。
消しても動作に影響はない。

消してよいもの / いけないもの

消してはいけないstate.toml、melodear.db(と FastDrive の本体)
消すと作り直しになる.melodear\ 配下、%LOCALAPPDATA%\MeloDear\libraries\...\cache\、models\、collab\
いつ消してもよいmelodear.db.mirrortmp.*、melodear.db.mirrorbak、melodear.db.snap.*、state.toml.tmp.*、%TEMP%\MeloDear-update\、version-policy-cache.json、logs\

melodear.db.snap.* と melodear.db.mirrortmp.* は放っておくと溜まることがある。

スナップショットは メタデータを編集する直前に VACUUM INTO で作られる
(空きが DB サイズの 2 倍未満なら作らない)。残すのは 新しい順に 3 個、かつ合計 5 GiB まで
(厳しいほうが勝つので、実運用では世代数のほうが先に効く)。
異常終了が続いた後などは手で消してしまってよい(アプリを閉じてから)。

DB が異常に大きいとき

アートワークが folder_artwork テーブルに BLOB で溜まっていることがあります。
Settings →「メンテナンス」→「アートワーク DB 肥大の解消」で、
画像をファイルシステムへ書き出して VACUUM をかけると縮みます(進捗表示と中断あり)。


← リファレンス目次へ