Files

52 lines
2.4 KiB
Plaintext
Raw Permalink Normal View History

# Collaplex 32 段 EQ + 总音量 —— 本文件由 脚本/安装.sh 生成(占位符 __EQ_WRAPPER__ / __TARGET__)
# 链路: ... -> HRTF 核心 -> [本图] 32 段 EQ + 总音量(pipe DSP) -> 数字输出
#
# ★ __TARGET__ 是**用户选定的输出设备**(落盘在 ~/.local/state/cinema-spatial/output.json,
# 面板「输出设备」卡片可改; 没选过则由安装脚本探测第一个数字输出)。
# 设备名跨重插是稳定的(含 USB 序列号), 所以设备晚到也不改这一行 —— 由面板守护
# (web/output_route.py)在设备出现后自动把它挂上去。
context.modules = [
{ name = libpipewire-module-filter-chain
flags = [ nofail ]
args = {
node.description = "Collaplex EQ + 总音量"
media.name = "Collaplex EQ"
filter.graph = {
nodes = [
{ type = builtin label = copy name = c1L }
{ type = builtin label = copy name = c1R }
{ type = builtin label = pipe name = eqpL config = { command = "__EQ_WRAPPER__" } }
{ type = builtin label = pipe name = eqpR config = { command = "__EQ_WRAPPER__" } }
{ type = builtin label = copy name = c2L }
{ type = builtin label = copy name = c2R }
]
links = [
{ output = "c1L:Out" input = "eqpL:In" }
{ output = "c1R:Out" input = "eqpR:In" }
{ output = "eqpL:Out" input = "c2L:In" }
{ output = "eqpR:Out" input = "c2R:In" }
]
inputs = [ "c1L:In" "c1R:In" ]
outputs = [ "c2L:Out" "c2R:Out" ]
}
capture.props = {
media.class = Audio/Sink
node.name = collaplex_eq_in
audio.channels = 2
audio.position = [ FL FR ]
# 同 10-: 整条链都不能空闲休眠, 否则客户端会停推
node.always-process = true
node.pause-on-idle = false
}
playback.props = {
node.name = collaplex_eq_out
audio.channels = 2
audio.position = [ FL FR ]
node.target = "__TARGET__"
node.always-process = true
node.pause-on-idle = false
}
}
}
]