使用 Pipewire 在 Fedora 上映射 USB 声卡的音频输出

使用 Pipewire 在 Fedora 上映射 USB 声卡的音频输出

设置:

  • 创意声霸X4
  • 2 个扬声器 + 1 个带 LFE 连接的低音炮
  • Yeti USB 麦克风
  • 软呢帽 39

目标:

  • 让 X4 上的 LFE 输出通道正常工作,这样我就可以在不插入桌面扬声器的情况下进行子工作
  • 在插入 X4 的耳机上混合麦克风音频,就像我的耳机插入麦克风一样。

X4 支持确实有 LFE 输出,我从未在 Linux 上输出过,但我已将其插入 Mac 和 Windows 计算机上并确认它确实有效。

到目前为止,我所设法做的权宜之计是获得一些 LFE 通道输出。由于我的桌面扬声器确实有一个低音炮输出,所以我(我认为)有一个虚拟接收器,它可以组合这些音频通道并将 LFE 向上混音。

我也没有设法让麦克风监控正常工作,不过,如果能再次正常工作那就太好了。 X4 有一个功能可以在音频播放和监听音频电平之间实现平衡,我想尝试一下,但如果这不起作用,我也不会失眠。

这就是我的配置。

/etc/pipewire/pipewire.conf.d/sink-virtual-surround-2.1.conf

context.modules = [
    {   name = libpipewire-module-loopback
        args = {
            node.description = "On-Board Virtual 2.1"
            capture.props = {
                node.name = "on-board_virtual_21"
                media.class = "Audio/Sink"
                audio.position = [ FL FR LFE ]
            }
            playback.props = {
                node.name = "playback.on-board_virtual_21"
                audio.position = [ AUX0 AUX1 AUX2 ]
                target.object = "alsa_output.usb-Generic_USB_Audio-00.pro-output"
                stream.dont-remix = true
                node.passive = true
            }
        }
    }
]

/etc/pipewire/pipewire-pulse.conf

stream.properties = {
    #node.latency          = 1024/48000
    #node.autoconnect      = true
    resample.quality       = 10
    #channelmix.normalize  = true
    channelmix.mix-lfe    = true
    channelmix.upmix       = true
    #channelmix.upmix-method = psd  # none, simple
    channelmix.lfe-cutoff = 125
    #channelmix.fc-cutoff  = 12000
    #channelmix.rear-delay = 12.0
    #channelmix.stereo-widen = 0.0
    #channelmix.hilbert-taps = 0
    #dither.noise = 0
}

我想我应该尝试一下 UI 选项,结果发现赫尔武姆如果我能弄清楚的话,看起来它可以让我拖放它。如果我真正了解配置可能会更好。这就是 Helvum 目前的样子。虽然我不确定哪个 AUX 端口是 LFE 通道,但从端口布局来看,如果是 AUX3 就有意义了。

可能还有一些额外的上下文会有所帮助,但我不确定什么最有帮助。

音频设备的lsusb

/:  Bus 003.Port 001: Dev 001, Class=root_hub, Driver=xhci_hcd/6p, 480M
    ID 1d6b:0002 Linux Foundation 2.0 root hub
    |__ Port 001: Dev 002, If 0, Class=Audio, Driver=snd-usb-audio, 12M
        ID b58e:9e84 Blue Microphones Yeti Stereo Microphone
    |__ Port 001: Dev 002, If 1, Class=Audio, Driver=snd-usb-audio, 12M
        ID b58e:9e84 Blue Microphones Yeti Stereo Microphone
    |__ Port 001: Dev 002, If 2, Class=Audio, Driver=snd-usb-audio, 12M
        ID b58e:9e84 Blue Microphones Yeti Stereo Microphone
    |__ Port 001: Dev 002, If 3, Class=Human Interface Device, Driver=usbhid, 12M
        ID b58e:9e84 Blue Microphones Yeti Stereo Microphone
    |__ Port 002: Dev 003, If 0, Class=Human Interface Device, Driver=usbhid, 480M
        ID 041e:3278 Creative Technology, Ltd
    |__ Port 002: Dev 003, If 1, Class=Communications, Driver=cdc_acm, 480M
        ID 041e:3278 Creative Technology, Ltd
    |__ Port 002: Dev 003, If 2, Class=CDC Data, Driver=cdc_acm, 480M
        ID 041e:3278 Creative Technology, Ltd
    |__ Port 002: Dev 003, If 3, Class=Audio, Driver=snd-usb-audio, 480M
        ID 041e:3278 Creative Technology, Ltd
    |__ Port 002: Dev 003, If 4, Class=Audio, Driver=snd-usb-audio, 480M
        ID 041e:3278 Creative Technology, Ltd
    |__ Port 002: Dev 003, If 5, Class=Audio, Driver=snd-usb-audio, 480M
        ID 041e:3278 Creative Technology, Ltd
    |__ Port 002: Dev 003, If 6, Class=Audio, Driver=snd-usb-audio, 480M
        ID 041e:3278 Creative Technology, Ltd

协议信息

Server String: /run/user/1000/pulse/native
Library Protocol Version: 35
Server Protocol Version: 35
Is Local: yes
Client Index: 283
Tile Size: 65472
User Name: fr0bar
Host Name: icarus
Server Name: PulseAudio (on PipeWire 1.0.3)
Server Version: 15.0.0
Default Sample Specification: float32le 3ch 192000Hz
Default Channel Map: front-left,front-right,lfe
Default Sink: on-board_virtual_21
Default Source: alsa_input.usb-Blue_Microphones_Yeti_Stereo_Microphone_797_2018_09_25_85357-00.analog-stereo
Cookie: eecc:e044

aplay-l

**** List of PLAYBACK Hardware Devices ****
card 0: Microphone [Yeti Stereo Microphone], device 0: USB Audio [USB Audio]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 1: HDMI [HDA ATI HDMI], device 3: HDMI 0 [HDMI 0]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 1: HDMI [HDA ATI HDMI], device 7: HDMI 1 [HDMI 1]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 1: HDMI [HDA ATI HDMI], device 8: HDMI 2 [HDMI 2]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 1: HDMI [HDA ATI HDMI], device 9: HDMI 3 [HDMI 3]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 2: X4 [Sound Blaster X4], device 0: USB Audio [USB Audio]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 2: X4 [Sound Blaster X4], device 1: USB Audio [USB Audio #1]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 2: X4 [Sound Blaster X4], device 2: USB Audio [USB Audio #2]
  Subdevices: 1/1
  Subdevice #0: subdevice #0

arecord -l

**** List of CAPTURE Hardware Devices ****
card 0: Microphone [Yeti Stereo Microphone], device 0: USB Audio [USB Audio]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 2: X4 [Sound Blaster X4], device 0: USB Audio [USB Audio]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 3: C920 [HD Pro Webcam C920], device 0: USB Audio [USB Audio]
  Subdevices: 1/1
  Subdevice #0: subdevice #0

密码元数据

update: id:0 key:'default.configured.audio.sink' value:'{"name":"on-board_virtual_21"}' type:'Spa:String:JSON'
update: id:0 key:'default.configured.audio.source' value:'{"name":"alsa_input.usb-Blue_Microphones_Yeti_Stereo_Microphone_797_2018_09_25_85357-00.analog-stereo"}' type:'Spa:String:JSON'
update: id:0 key:'default.audio.sink' value:'{"name":"on-board_virtual_21"}' type:'Spa:String:JSON'
update: id:0 key:'default.audio.source' value:'{"name":"alsa_input.usb-Blue_Microphones_Yeti_Stereo_Microphone_797_2018_09_25_85357-00.analog-stereo"}' type:'Spa:String:JSON'
update: id:0 key:'default.video.source' value:'{"name":"v4l2_input.pci-0000_0e_00.3-usb-0_4_1.0"}' type:'Spa:String:JSON'
update: id:153 key:'target.node' value:'108' type:'Spa:Id'
update: id:153 key:'target.object' value:'109' type:'Spa:Id'

氦图

相关内容