Sample Header Ad - 728x90

Mapping audio output for USB sound card on Fedora with Pipewire

2 votes
0 answers
559 views
Setup: * Creative Soundblaster X4 * 2 speakers + 1 sub with LFE connection * Yeti USB microphone * Fedora 39 Goal: * Have LFE out channel working on X4 so I can have sub working without plugging into desk speakers * Have microphone audio mix in on headphones plugged into X4 much like if my headphones were plugged into the microphone. The X4 supports does have an LFE out that I have never had output yet on Linux but I have plugged it in on both mac and windows computers and confirmed it does work. What I have managed to do so far as a stopgap is to get some LFE channel output. Since my desk speakers do have a subwoofer out I have (I think) a virtual sink that is combining these audio channels and upmixing the LFE into. I have not managed to get the mic monitoring working either, though, it would be nice to have that working again. The X4 has a feature to allow balance between audio playback and monitor audio levels that I would like to try but if that didn't work I won't lose any sleep. This is what my configuration looks like. /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 } I thought I would try a UI option and came across Helvum which looks like it may let me just drag and drop this if I could figure it out. It probably would be best if I actually understood the configuration. This is how it currently looks like in Helvum. Looking at it though I am not sure which of the AUX ports is the one for the LFE channel, though it would make sense if it was AUX3 based on the port layout. There probably is some additional context that would help but I am not sure what would be of most help. lsusb of the audio devices /: 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 pactl info
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
pw-metadata 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' Helvum Diagram
Asked by rlperez (121 rep)
Mar 1, 2024, 07:56 AM
Last activity: Mar 5, 2024, 05:51 AM