c23936e69f
- 打包deb.sh: VER 1.3.0 -> 1.3.6 - 发布release.sh: release 正文补 1.3.1~1.3.6 的改动清单
33 lines
4.7 KiB
Bash
33 lines
4.7 KiB
Bash
#!/bin/bash
|
|
# 打 release + 上传 deb 到 Gitea。用法: 发布release.sh [版本号]
|
|
set -eu
|
|
cd "$(dirname "$(readlink -f "$0")")"
|
|
VER="${1:-$(grep -oP '^VER="\K[^"]+' 打包deb.sh)}"
|
|
PKG="collaplex-cinema-spatial"
|
|
DEB="$HOME/桌面/${PKG}_${VER}_all.deb"
|
|
API="http://8.136.202.225:3000/api/v1/repos/edgevoid/cinema-spatial"
|
|
|
|
echo "=== 打包 $VER ==="
|
|
rm -f "$DEB"
|
|
bash 打包deb.sh 2>&1 | tail -3
|
|
[ -f "$DEB" ] || { echo "打包失败"; exit 1; }
|
|
echo "本地: $(stat -c%s "$DEB") 字节"
|
|
|
|
echo "=== 建 release v$VER ==="
|
|
BODY="collaplex-cinema-spatial $VER — 耳机电影院空间音频 (PipeWire filter-chain + SADIE-II HRTF, 96kHz/24bit)\\n\\n核心技术: 镜像法房间声学追踪(0-80ms 早期反射, 8473 条镜面路径) + Sabine 统计尾音(80ms-2s) -> 96kHz 真实房间 IR 双耳卷积; 湿量按能量归一。不是 Freeverb/Schroeder 类算法混响。\\n\\n本版 1.3.6 —— 面板电平可视化大修 + "没声音"类问题根治\\\\n\\\\n【1.3.6】电平表缩放加「平均 + 变速」: 峰值/谷值走 EMA(涨快落慢) + 目标量程走非对称 EMA(张开快/收缩慢, 即 attack/release 思路), 消除量程"一时全空一时拉满"的跳变。实测最大单帧跳变 6dB。\\\\n【1.3.5】电平表波形放大: 量程跟随信号实际幅度(跨度x1.45), 波形占画布约 2/3。\\\\n【1.3.4】原始/处理后电平表波形垂直居中: 顶线=峰值+半量程, 波峰不再贴框顶被标题压住。\\\\n【1.3.3】响度归一化曲线改动态量程(波峰自动居中)。\\\\n【1.3.2】面板补 favicon(内联 SVG 声波柱) + 修响度曲线被挤压。\\\\n【1.3.1】★ 重要: 物理输出音量是**档位**、不是增益 —— 撤销上一版"把它对齐到虚拟声卡(1.0)"的错误假设(那会让动态被压扁: 面板波形顶满而听感反而更小); 看门狗只兜"静音/近乎归零", 绝不改正常档位。\\\\n\\\\n本版 1.3.0 起 —— 新增【离线渲染】+【组件看门狗】\\n\\n【离线渲染】音频/视频 -> 空间音频 FLAC (96kHz 双耳), 与实时虚拟声卡同一套参数:\\n- 链路: pan 上混 5.1 -> sofalizer(同一个 H4 SOFA, 96k/512tap) -> 房间 IR 卷积(afir) -> loudnorm\\n- 视频自动取音轨; 已是 5.1 的片源不重上混; 输出 <原名>.空间音频.flac\\n- 两块锁: (1) 渲染锁 —— 一轮任务期间不接受新任务(直接拒绝, 不排队堆积); (2) 文件就绪检查 —— 相隔 1.2 秒两次 stat 的大小/时间不变且 ffprobe 能读出音轨, 还在下载/写入的文件直接跳过\\n- 三个入口: 命令行 collaplex-render 文件... / Web 控制台「离线渲染」区(拖文件或贴路径, 实时进度条 + 日志 + 取消) / 文件管理器右键「打开方式 -> Collaplex 离线渲染」\\n- 实测 8 秒立体声 1.8 秒完成(约 4.4 倍速)\\n\\n【组件看门狗】音频守护.py + config/组件配置单.json:\\n- 30 秒一轮核对整条链的期望状态: DSP 进程数与槽位新鲜度 / 链输出连线 / 默认设备 / 虚拟声卡优先级 / 中间级音量 / 节点份数 / 控制台 / 物理设备静音\\n- 扫到就修: 能温和就温和(改音量、切默认、pw-link 重连), 只有链路级问题才重建; 同类问题 90 秒冷却, 连续 3 次修不好转只报警\\n\\n其他:\\n- 控制台: 控制滑块从图表卡片独立成「控制」卡片; 数字/模拟输出音量条拉长到各占一半(合计 = 虚拟声卡开关卡片总高)\\n- 修: DSP 孤儿抢共享槽位导致重建后无声(claim_slot 抢不到槽位即退出 + 重建前收旧 DSP)\\n- 修: 打包会把正在用的 PipeWire 配置移开(prune_duplicate_confs 在 OUT 落到非生效目录时不再清理 + CINEMA_SPATIAL_KEEP_CONFS=1 双保险)\\n\\n自 1.2.0 以来新增文件: 离线渲染.py, 离线渲染-打开.sh, 音频守护.py, 组件配置单.md, config/组件配置单.json, 桌面项/\\n\\n安装: sudo dpkg -i ${PKG}_${VER}_all.deb; systemctl --user restart pipewire pipewire-pulse"
|
|
RID=$(curl -s -X POST "$API/releases" -u edgevoid:147427 -H "Content-Type: application/json" -d "{\"tag_name\":\"v$VER\",\"name\":\"v$VER\",\"body\":\"$BODY\"}" | python3 -c "import sys,json; print(json.load(sys.stdin).get('id',''))")
|
|
echo "release id: $RID"
|
|
[ -n "$RID" ] || exit 1
|
|
|
|
echo "=== 上传资产 ==="
|
|
curl -s -X POST "$API/releases/$RID/assets?name=$(basename "$DEB")" -u edgevoid:147427 -H "Content-Type: application/octet-stream" --data-binary "@$DEB" -o /dev/null -w "上传 HTTP %{http_code}\n"
|
|
|
|
echo "=== 逐字节核对 ==="
|
|
curl -s "$API/releases/$RID" -u edgevoid:147427 | python3 -c "
|
|
import sys, json
|
|
for a in json.load(sys.stdin).get('assets', []):
|
|
print(' 远端', a['size'], '字节', a['name'])
|
|
print(' 下载', a.get('browser_download_url',''))
|
|
"
|
|
echo " 本地 $(stat -c%s "$DEB") 字节"
|