#!/bin/sh
# 电影院空间音频: 把多声道音轨(5.1/7.1)用 HRTF 渲染成双耳, 耳机上得到环绕包围感。
#
# 原理: 影片的 5.1/7.1 音轨 -> 每个声道按它所在方向, 与人头模型的脉冲响应卷积
#       -> 混成两耳。声音就会"从左边/后面/远处来", 不再挤在头中间。
#
# 用法:  mpv-影院 电影.mkv
#        mpv-影院 --no-video 电影.mkv     (只听声)
#
# 注意:  只适合多声道片源(5.1/7.1)。立体声片源别用 —— HRTF 会把左右两声各自
#        推远, 听起来更空但不会变环绕, 反而变差。
#
# 参数说明:
#   radius=1.2   声源距离(米), 1.2 更像影厅
#   gain=-16     整链增益校准值。★别随手改大★
#                上混及多路叠加会让整链净增益约 +10.5dB, 必须拿"接近满刻度"的
#                素材实测才能定; 给大了直接削波爆音(实测教训)。
#   type=time    时域卷积(保真)。默认的 freq 走 FFT, 会削高频。
# ★ 采样率: sofalizer 按 SOFA 文件自身的采样率输出, 不在链尾拉回来整个音频链
#           会掉到 44.1k。所以要 aresample 回 96k 并让 ao 也请求 96k。
SPATIAL_ROOT="${CINEMA_SPATIAL_ROOT:-/usr/share/cinema-spatial}"
exec mpv \
  --audio-samplerate=96000 \
  --af="sofalizer=sofa=${SPATIAL_ROOT}/sofa/H4_96K_24bit_512tap_FIR_SOFA.sofa:type=time:radius=1.2:gain=-16,aresample=96000" \
  "$@"
