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 |
<library-id>はライブラリフォルダの正規化パスを SHA-256 にかけた先頭 8 バイト(16 桁の hex)。
フォルダを移動すると別 ID になるので、移動時は MeloDear 側で開き直す。
- FastDrive はライブラリが NAS や外付けにあるとき用。読み書きは速いローカルで行い、
30 分アイドルするとライブラリフォルダ側へミラーを書く。ミラーは片方向(本体 → フォルダ)。
- ライブラリフォルダにできる一時ファイル:
melodear.db.mirrortmp.*(ミラー書き込み中)、
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 をかけると縮みます(進捗表示と中断あり)。