PulseAudio: Create profile to add surround channels to RME Fireface 802

My RME Fireface 802 is only being recognized as a two output channel device by PulseAudio while it has up to 22 input and output channels in class-compliant mode. All these channels can be accessed from ALSA (tested with Reaper and Bitwig). Yet, PulseAudio thinks of it as merely a stereo output device.

Running “pacmd list-cards” shows:

   index: 1
	name: <alsa_card.usb-RME_Fireface_802__23718657__72EA2C4467925C8-00>
	driver: <module-alsa-card.c>
	owner module: 9
	properties:
		alsa.card = "2"
		alsa.card_name = "Fireface 802 (23718657)"
		alsa.long_card_name = "RME Fireface 802 (23718657) at usb-0000:10:00.3-4.4, high speed"
		alsa.driver_name = "snd_usb_audio"
		device.bus_path = "pci-0000:10:00.3-usb-0:4.4:1.0"
		sysfs.path = "/devices/pci0000:00/0000:00:08.1/0000:10:00.3/usb5/5-4/5-4.4/5-4.4:1.0/sound/card2"
		udev.id = "usb-RME_Fireface_802__23718657__72EA2C4467925C8-00"
		device.bus = "usb"
		device.vendor.id = "0424"
		device.vendor.name = "Microchip Technology, Inc. (formerly SMSC)"
		device.product.id = "3fdd"
		device.product.name = "Fireface 802 (23718657)"
		device.serial = "RME_Fireface_802__23718657__72EA2C4467925C8"
		device.string = "2"
		device.description = "Fireface 802 (23718657)"
		module-udev-detect.discovered = "1"
		device.icon_name = "audio-card-usb"
	profiles:
		input:multichannel-input: Mehrkanal-Eingabe (priority 1, available: unknown)
		output:analog-stereo: Analog Stereo-Ausgabe (priority 1500, available: unknown)
		output:analog-stereo+input:multichannel-input: Analog Stereo-Ausgabe + Mehrkanal-Eingabe (priority 1501, available: unknown)
		output:iec958-stereo: Digital Stereo (IEC958)-Ausgabe (priority 500, available: unknown)
		output:iec958-stereo+input:multichannel-input: Digital Stereo (IEC958)-Ausgabe + Mehrkanal-Eingabe (priority 501, available: unknown)
		off: Aus (priority 0, available: unknown)
	active profile: <output:analog-stereo+input:multichannel-input>
	sinks:
		alsa_output.usb-RME_Fireface_802__23718657__72EA2C4467925C8-00.analog-stereo/#0: Fireface 802 (23718657) Analog Stereo
	sources:
		alsa_output.usb-RME_Fireface_802__23718657__72EA2C4467925C8-00.analog-stereo.monitor/#0: Monitor of Fireface 802 (23718657) Analog Stereo
		alsa_input.usb-RME_Fireface_802__23718657__72EA2C4467925C8-00.multichannel-input/#1: Fireface 802 (23718657) Mehrkanal
	ports:
		analog-output: Analog Output (priority 9900, latency offset 0 usec, available: unknown)
			properties:
				
		iec958-stereo-output: Digital Output (S/PDIF) (priority 0, latency offset 0 usec, available: unknown)
			properties:

It seems that it’s missing profiles to access more than a stereo output configuration. Any idea how I could add such a configuration to PulseAudio?

PulseAudio appears to be able to see more than 2 capture inputs using the input:multichannel-input sink
But this sink is only configured for 4 channels in /usr/share/pulseaudio/alsa-mixer/profile-sets/default.conf

[Mapping multichannel-input]
device-strings = hw:%f
channel-map = left,right,rear-left,rear-right
exact-channels = false
fallback = yes
priority = 1
direction = input

But your interface is not able to use the sink profile [Mapping multichannel-output]
I suspect this is because either that interface output channels have a different channel map, or ALSA has multiple mono/stereo subdevices

I suggest you check out the comment notes at the beginning of file /usr/share/pulseaudio/alsa-mixer/profile-sets/default.conf that explain how to create custom profiles

Check out this previous post to see how another user created surround sound profiles for a different audio interface - Pulseaudio custom profile for Focusrite 18i8
(and how to create the udev rule to load any custom profiles created)

and check some of the other custom profiles in folder /usr/share/pulseaudio/alsa-mixer/profile-sets/ to see other examples of surround and multiple stereo profiles

Thanks a lot for your help!

I created /lib/udev/rules.d/91-pulseaudio.rules with the following content:

SUBSYSTEM!="sound", GOTO="pulseaudio1_end"
ACTION!="change", GOTO="pulseaudio1_end"
KERNEL!="card*", GOTO="pulseaudio1_end"

SUBSYSTEMS=="usb", ATTRS{idVendor}=="0424", ATTRS{idProduct}=="3fdd", ENV{PULSE_PROFILE_SET}="rme-fireface802.conf"

LABEL="pulseaudio1_end"

and `/usr/share/pulseaudio/alsa-mixer/profile-sets/rme-fireface802.conf ` with the content:
[General]
auto-profiles = yes

[Mapping analog-surround-51]
device-strings = hw:F80223718657:%f
channel-map = front-left,front-right,rear-left,rear-right,front-center,lfe
paths-output = analog-output
direction = output

[Profile output:analog-surround-51]
output-mappings = analog-surround-51
priority = 2

With these changes, the Fireface 802 is gone from the list of available PulseAudio devices.
How can I find out what the problem is?

If the interface is not visible I would suspect the udev rule is working but the analog-surround-51 port mapping has incorrect settings for device-strings and/or channel map

please post more information about the ALSA subdevices and channels on the interface:

aplay -l && amixer -c2

I suggest you copy the previously detected PulseAudio profiles from /usr/share/pulseaudio/alsa-mixer/profile-sets/default.conf to /usr/share/pulseaudio/alsa-mixer/profile-sets/ rme-fireface802.conf to restore the original audio ports and profiles

The outputs are:

aplay -l
**** Liste der Hardware-Geräte (PLAYBACK) ****
Karte 0: NVidia [HDA NVidia], Gerät 3: HDMI 0 [HDMI 0]
  Sub-Geräte: 1/1
  Sub-Gerät #0: subdevice #0
Karte 0: NVidia [HDA NVidia], Gerät 7: HDMI 1 [HDMI 1]
  Sub-Geräte: 1/1
  Sub-Gerät #0: subdevice #0
Karte 0: NVidia [HDA NVidia], Gerät 8: HDMI 2 [HDMI 2]
  Sub-Geräte: 1/1
  Sub-Gerät #0: subdevice #0
Karte 0: NVidia [HDA NVidia], Gerät 9: HDMI 3 [HDMI 3]
  Sub-Geräte: 1/1
  Sub-Gerät #0: subdevice #0
Karte 0: NVidia [HDA NVidia], Gerät 10: HDMI 4 [HDMI 4]
  Sub-Geräte: 1/1
  Sub-Gerät #0: subdevice #0
Karte 0: NVidia [HDA NVidia], Gerät 11: HDMI 5 [HDMI 5]
  Sub-Geräte: 1/1
  Sub-Gerät #0: subdevice #0
Karte 0: NVidia [HDA NVidia], Gerät 12: HDMI 6 [HDMI 6]
  Sub-Geräte: 1/1
  Sub-Gerät #0: subdevice #0
Karte 1: Generic [HD-Audio Generic], Gerät 0: ALC1220 Analog [ALC1220 Analog]
  Sub-Geräte: 1/1
  Sub-Gerät #0: subdevice #0
Karte 1: Generic [HD-Audio Generic], Gerät 1: ALC1220 Digital [ALC1220 Digital]
  Sub-Geräte: 1/1
  Sub-Gerät #0: subdevice #0
Karte 2: F80223718657 [Fireface 802 (23718657)], Gerät 0: USB Audio [USB Audio]
  Sub-Geräte: 1/1
  Sub-Gerät #0: subdevice #0

and:

    Simple mixer control 'PCM',0
      Capabilities: pvolume pvolume-joined
      Playback channels: Mono
      Limits: Playback 0 - 130
      Mono: Playback 0 [0%] [-65.00dB]

I’m still not quite sure about how to find out how the addressing of the different channels in the profile is.

The solution, not only to this specific audio interface but any sound card not properly communicating this to PulseAudio, was to use JACK via QjackCtl with the following script (needs adaption to your sound card and channel configuration):

#! /bin/bash

pacmd load-module module-jack-source channels=1; pacmd load-module module-jack-sink channels=6 sink_name=firefaceout client_name=firefaceout channel_map=front-left,front-right,front-center,lfe,rear-left,rear-right;pacmd 'update-sink-proplist firefaceout device.description="RME Fireface 802 5.1" '

Place this somewhere you like, make it executable and add it to QjackCtl as a post-start script under “Settings->Options”. This will create a 5.1 sink in PulseAudio that routes all your normal audio software’s output into JACK and from there to your sound card’s output.
The only other thing I had to configure in JACK was the input and output device under Settings->Advanced.

You can add QjackCtl to your session’s autostart so it’ll be there as soon as you log in. There’s also an option to start it minimized and to start the JACK server automatically upon starting QjackCtl, so you won’t have to manually interfere with it after setting it up.

This topic was automatically closed 2 days after the last reply. New replies are no longer allowed.