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).