Files
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

64 lines
2.5 KiB
Bash
Executable File

#!/bin/bash
# 把 collaplex-audio 打成 deb 包(纯脚本 + 数据, Architecture: all)
#
# bash 打包deb.sh 默认版本 1.0.0
# VER=1.0.1 bash 打包deb.sh 指定版本
#
# 产物: 发布/collaplex-audio_<版本>_all.deb
#
# 说明: 装到 /usr/share/collaplex-audio, 只提供 /usr/bin/collaplex-audio 一个入口。
# 不带 venv(依赖系统 python3-numpy / python3-scipy), 不装到 pipewire 配置目录 ——
# 也就是说**装完不会自动启用**, 要手动 collaplex-audio start, 也不做开机自启。
set -eu
ROOT="$(cd "$(dirname "$0")" && pwd)"
VER="${VER:-1.0.0}"
OUT="$ROOT/发布"
PKG="collaplex-audio_${VER}_all"
STAGE="$OUT/$PKG"
echo "=== 打包 collaplex-audio $VER ==="
rm -rf "$STAGE"
mkdir -p "$STAGE/DEBIAN" "$STAGE/usr/share/collaplex-audio" "$STAGE/usr/bin"
# ---- 源码 ----
for d in dsp bin pipewire web hrir reverb 脚本 systemd; do
cp -a "$ROOT/$d" "$STAGE/usr/share/collaplex-audio/"
done
cp "$ROOT/README.md" "$STAGE/usr/share/collaplex-audio/"
# 备份文件不入包(IR 的 .orig / .pre-eq 备份只留在源码树里)
find "$STAGE" \( -name "*.orig.wav" -o -name "*.pre-eq.wav" \) -delete
find "$STAGE/usr/share" -name '__pycache__' -type d -exec rm -rf {} + 2>/dev/null || true
chmod -R a+rX "$STAGE/usr/share"
# ---- 主命令 ----
install -m 755 "$ROOT/bin/collaplex-audio" "$STAGE/usr/bin/collaplex-audio"
# ---- control ----
SIZE=$(du -sk "$STAGE/usr" | cut -f1)
cat > "$STAGE/DEBIAN/control" <<EOF
Package: collaplex-audio
Version: ${VER}
Architecture: all
Maintainer: Collaplex <collaplex@localhost>
Installed-Size: ${SIZE}
Depends: python3 (>= 3.10), python3-numpy, python3-scipy, pipewire, wireplumber
Section: sound
Priority: optional
Description: Collaplex 音效 — 全局音频的响度归一化 + 双耳 HRTF + 32 段 EQ + 房间混响
把系统输出接成一条链: 虚拟声卡 -> 响度归一化 -> 双耳 HRTF(含房间混响) -> 32 段 EQ + 总音量
-> 数字输出。自带本地控制面板(双声道电平表 / 归一化电平与动态增益 / 湿度与总音量滑块 /
32 段 EQ + 10 个预设)。
.
HRTF 用 SADIE II 真人数据集(约克大学, 受试者 H4, 96 kHz / 512 tap)。
.
装完不会动你的系统音频: 手动跑 collaplex-audio start 才接管, stop 即还原。
EOF
# ---- 构建 ----
dpkg-deb --root-owner-group --build "$STAGE" "$OUT/${PKG}.deb" >/dev/null
echo "已生成: $OUT/${PKG}.deb"
dpkg-deb --info "$OUT/${PKG}.deb" | sed -n '1,12p'
echo
echo -n "大小: "; du -h "$OUT/${PKG}.deb" | cut -f1