Files
collaplex-audio/pipewire/10-collaplex-vsink.conf
T

49 lines
2.3 KiB
Plaintext
Raw Normal View History

# Collaplex 虚拟声卡 + 响度归一化 —— 本文件由 脚本/安装.sh 生成(占位符: __HRTF_IN__ / __WRAPPER__)
# 链路: 全局音频(应用输出) -> collaplex_vsink(虚拟声卡) -> 响度归一化(pipe DSP) -> 数字输出(S/PDIF)
context.modules = [
{ name = libpipewire-module-filter-chain
flags = [ nofail ]
args = {
node.description = "Collaplex 虚拟声卡 (响度归一化)"
media.name = "Collaplex Virtual Sink"
filter.graph = {
nodes = [
{ type = builtin label = copy name = c1L }
{ type = builtin label = copy name = c1R }
{ type = builtin label = pipe name = lnL
config = { command = "__WRAPPER__" } }
{ type = builtin label = pipe name = lnR
config = { command = "__WRAPPER__" } }
{ type = builtin label = copy name = c2L }
{ type = builtin label = copy name = c2R }
]
links = [
{ output = "c1L:Out" input = "lnL:In" }
{ output = "c1R:Out" input = "lnR:In" }
{ output = "lnL:Out" input = "c2L:In" }
{ output = "lnR:Out" input = "c2R:In" }
]
inputs = [ "c1L:In" "c1R:In" ]
outputs = [ "c2L:Out" "c2R:Out" ]
}
capture.props = {
media.class = Audio/Sink
node.name = collaplex_vsink
audio.position = [ FL FR ]
# ★ 虚拟声卡必须常驻运行。空闲时若被 suspend, 客户端(Chromium 经
# pipewire-pulse)会认为输出端停止消费而不再推数据 —— 表现为
# "播着播着突然没声音, 刷新页面才恢复"。让节点永不空闲休眠。
node.always-process = true
node.pause-on-idle = false
}
playback.props = {
node.name = collaplex_vsink_out
audio.position = [ FL FR ]
node.target = "__HRTF_IN__"
node.always-process = true
node.pause-on-idle = false
}
}
}
]