2 Commits

Author SHA1 Message Date
lou 3b6ce2c57e 参数持久化: 面板改动落盘, 重启/开机后自动恢复
问题(09-20 实测复现): dsp/common.py 的 open_store() 是"文件不存在就零填充创建", 而
/dev/shm 是 tmpfs —— 重启后参数全变 0。听感上不是"参数没保存", 而是**"混响突然没了"**
(湿量 0), 极易被当成链路故障去查。

修法:
- common.py: 加 params.json 落盘(load_saved_params / save_params / restore_params);
  open_store() 检测到文件是"新建的"就从落盘恢复(带上下限夹取)。幂等 —— 两个声道进程
  同时判定为新建也没关系, 写进去的值一样。
- web/server.py: 面板每次改参数(POST /api/eq|volume|wet)后 save_params() 落盘; 值没变不写。
- 初始化.py: 改成"优先用落盘, 没有才用默认值", 并报告参数来源。

实测(rm /dev/shm/collaplex-eq* + 重启 pipewire): 参数自动恢复, 与落盘逐值一致
(总音量 +2.0 / 湿量 0.600 / EQ 非零 30 段)。

落盘位置 ~/.local/state/cinema-spatial/params.json(与 loudness.json 同目录)。
README 加「参数持久化」节 + 坑表条目。
2026-09-20 13:40:06 +08:00
lou 6f5729baf2 前端加 4 个电平表(入L/出L/入R/出R, 双声道由 flock 分槽) + 混响湿度滑块(实时); 湿量抽成独立 DSP 增益级(wet_gain.py), 混响仍用 PipeWire convolver 跑 3 秒长 IR; 实测湿量 0 无尾巴 / 1 有 3 秒衰减尾巴 2026-09-19 19:37:54 +08:00