Only Stereo, no 7.1 with PulseAudio and UMC1820

Hi Forum,

I am struggling with my current 7.1 setup, and I can only get Stereo output. This is my setup at the moment:

  • FMOD API 2.03.11 running on a Raspberry Pi 4
  • Behringer UMC1820, a multi-channel sound interface which I have used successfully before, but probably with a slightly different Raspberry OS and PulseAudio combination (that setup is not accessible atm, so I cannot have a look)

I read a bit about the Linux Audio stack, and I figured out that on the bottom there is always ALSA because it is part of the Linux kernel, and then on top I can have Pulseaudio, JACK, Pipewire (which can emulate PulseAudio and JACK), etc.

Now I’m on bookworm, and audio is apparently (for FMOD) routed over PulseAudio. `systemctl status –user` shows Pipewire running, which is providing the PulseAudio backend.

I can use `speaker-test -p 1 -c 12` which runs noise on all channels, which works. speaker-test uses the default output device, which is pulse, and the default PulseAudio sink is the UMC1820:

> pactl get-default-sink
alsa_output.usb-BEHRINGER_UMC1820_4083859E-00.multichannel-output

I can use wpctl status to list all sources, sinks, and clients. Now here it gets interesting, especially when I run speaker-test at the same time:

└─ Streams:
114. FMOD Audio
117. output_FR > UMC1820:playback_AUX1 [active]
118. output_FL > UMC1820:playback_AUX0 [active]
120. ALSA plug-in [speaker-test]
121. output_RR > UMC1820:playback_AUX3 [active]
122. output_AUX1
123. output_SR > UMC1820:playback_AUX7 [active]
124. output_FR > UMC1820:playback_AUX1 [active]
125. output_FL > UMC1820:playback_AUX0 [active]
126. output_LFE > UMC1820:playback_AUX5 [active]
127. output_SL > UMC1820:playback_AUX6 [active]
128. output_AUX3
129. output_AUX2
132. output_AUX0
135. output_RL > UMC1820:playback_AUX2 [active]
137. output_FC > UMC1820:playback_AUX4 [active]

FMOD only uses 2 channels. This even though I set it to 7.1 output in the code, and the output of my app is below.

What is wrong here? How can I get more than 2 channels again?

Thanks,
Simon

App output:

[LOG] FMOD_System_Create : Header version = 2.03.11. Current version = 2.03.11.
[ERR] FMOD_OS_CheckVFPNeon : Could not detect floating point hardware, cannot continue.
[LOG] system_create : Header version = 2.03.11. Current version = 2.03.11.
Common speaker modes
1: RAW 3: Stereo
7: 7.1
Setting up core system with speaker mode 7, sample rate 48000, raw speakers 0
Setting Pulseaudio output
[LOG] SystemI::setOutputInternal : Setting output to ‘FMOD PulseAudio Output’
Listing drivers
[LOG] OutputPulseAudio::PulseAudio_RegisterLib : Loaded PulseAudio version 16.1.0. [LOG] PulseAudio_EnumOutputCallback : Found output device NAME:alsa_output.usb-BEHRINGER_UMC1820_4083859E-00.multichannel-output DESC:UMC1820 Multichannel CHANNELS:12 RATE:48000.
[LOG] PulseAudio_EnumOutputCallback : Found output device NAME:alsa_output.platform-bcm2835_audio.stereo-fallback DESC:Built-in Audio Stereo CHANNELS:2 RATE:48000.
[LOG] PulseAudio_EnumInputCallback : Found input device NAME:alsa_output.usb-BEHRINGER_UMC1820_4083859E-00.multichannel-output.monitor DESC:Monitor of UMC1820 Multichannel CHANNELS:12 RATE:48000.
[LOG] PulseAudio_EnumInputCallback : Found input device NAME:alsa_input.usb-BEHRINGER_UMC1820_4083859E-00.multichannel-input DESC:UMC1820 Multichannel CHANNELS:10 RATE:48000.
[LOG] PulseAudio_EnumInputCallback : Found input device NAME:alsa_output.platform-bcm2835_audio.stereo-fallback.monitor DESC:Monitor of Built-in Audio Stereo CHANNELS:2 RATE:4800
0.
0: UMC1820 Multichannel [3157456612.59623.22647]: Mode 8, rate 48000, channels 12
1: Built-in Audio Stereo [474181726.21542.23627]: Mode 3, rate 48000, channels 2
Setting software format: Sample rate 48000, speaker mode 7, raw speakers 0
Found driver: ID 0, name UMC1820 Multichannel, GUID 3157456612.59623.22647.k, rate: 48000, mode: 8, channels: 12
Found driver: ID 1, name Built-in Audio Stereo, GUID 474181726.21542.23627.|zA0z, rate: 48000, mode: 3, channels: 2
Active driver is 0
Current software format: Sample rate 48000, speaker mode 7, raw speakers 8
[LOG] Manager::init : maxchannels = 1024 studioflags = 00000001 flags 00000000 extradriverdata (nil).

Hi,

Thanks for the information. Everything from the log looks good, we can see it is picking up the correct out put devices:

Found driver: ID 0, name UMC1820 Multichannel, GUID 3157456612.59623.22647.k, rate: 48000, mode: 8, channels: 12
Found driver: ID 1, name Built-in Audio Stereo, GUID 474181726.21542.23627.|zA0z, rate: 48000, mode: 3, channels: 2
Active driver is 0

Would it be possible to share the initialization code? Would it be possible to test the included examples?

In your FMOD engine download: /fmodstudioapi20311linux/api/core/examples/make Can you please run make -f multiple_speaker.makefile CPU=x86_64 CONFIG=Debug then run the multiple_speaker example which should allow us to test if the FMOD system is able to pick up all the correct outputs. Could you let me know the output of the example?

Thank you