# Stereo speakers but driver is described as 7.1 format

**URL:** https://qa.fmod.com/t/stereo-speakers-but-driver-is-described-as-7-1-format/23019
**Category:** FMOD Studio
**Created:** [June 6, 2025, 3:54am UTC](https://qa.fmod.com/t/stereo-speakers-but-driver-is-described-as-7-1-format/23019 "2025-06-06T03:54:33Z")
**Posts on this page:** 7
**Page:** 1

<div class="post-metadata">

### Author: ![gwebb](https://avatars.discourse-cdn.com/v4/letter/g/d9b06d/32.png) [@gwebb](https://qa.fmod.com/u/gwebb)
#### Post date: [June 6, 2025, 3:54am UTC](https://qa.fmod.com/t/stereo-speakers-but-driver-is-described-as-7-1-format/23019/1 "2025-06-06T03:54:33Z")

</div>

Our FMOD Studio project is authored in 7.1 surround sound for PC. For players with stereo speakers or headphones, we rely on FMOD to downmix the output to stereo before passing the signal to the driver. This generally works well.

We have certain unit sounds configured to spatialize but not to attenuate with distance (the attenuation curve is set to OFF in FMOD Studio). This works fine, although some testers have reported that these sounds still attenuate a little, especially when the unit is far behind the camera. I figured this is related to the way FMOD downmixes from 7.1 to stereo, where rear speakers are given less weight than front speakers. Thus units far to the rear will mix down to a softer overall volume than units to the front. The difference in volume is fairly mild, and we are not too worried about it. One could even argue that it’s a nice way to indicate that a unit is obscured behind you.

But one of our testers has reported this volume attenuation effect being much more severe than for other testers. I got them to send me their logs and this is what `System::getDriverInfo()` reports:

```auto
[BSoundManagerFMOD] Drivers: numdrivers=5, current=0
[BSoundManagerFMOD] Driver 0: name="Stereo Speakers (Realtek(R) Audio)", systemrate=48000, speakermode=7, speakermodechannels=8
[BSoundManagerFMOD] Driver 1: name="Speakers (Steam Streaming Speakers)", systemrate=48000, speakermode=3, speakermodechannels=2
[BSoundManagerFMOD] Driver 2: name="C27-30 (NVIDIA High Definition Audio)", systemrate=48000, speakermode=3, speakermodechannels=2
[BSoundManagerFMOD] Driver 3: name="C27-30 (NVIDIA High Definition Audio)", systemrate=48000, speakermode=3, speakermodechannels=2
[BSoundManagerFMOD] Driver 4: name="Speakers (Steam Streaming Microphone)", systemrate=48000, speakermode=3, speakermodechannels=2
[BSoundManagerFMOD] Software Format: samplerate=48000, speakermode=7, numrawspeakers=8

```

The default sound driver describes itself as “Stereo Speakers”, and yet the format is 7.1 surround. This implies that the device will perform its own 7.1 to stereo downmix, and apparently it’s not doing a great job of that.

Ideally we want FMOD to do the downmix before passing the stereo signal to the output. But this driver is “lying”, so what can we do? The only things I can think of so far are:

- Add a game option for the user to manually force stereo output.
- Look for the word “stereo” in the device name and force stereo output in that case.

I’m interested to know how others have dealt with such sound drivers that lie about their output format and apparently do their own (poor) downmixing. Is there some method to get the real output format?

---

<div class="post-metadata">

### Author: ![mathew](https://yyz2.discourse-cdn.com/flex036/user_avatar/qa.fmod.com/mathew/32/431_2.png) [@mathew](https://qa.fmod.com/u/mathew)
#### Post date: [June 9, 2025, 10:59pm UTC](https://qa.fmod.com/t/stereo-speakers-but-driver-is-described-as-7-1-format/23019/2 "2025-06-09T22:59:05Z")

</div>

As far as I am aware, there are no hooks in WASAPI that allow us to know that the device is actually stereo (and it’s doing the 7.1 → stereo downmix in-driver). We use the format that the Windows mixer is running in (as required), it’s the end user who controls that format in their settings. You could get them to change their settings or possibly disable enhancements, but that’s not super user friendly.

For an in-game solution having a stereo option is probably the most accessible for users. I’d worry about assuming “stereo” in the name means a stereo device, there could be false positives, and I bet there are lots of “gamer headsets” that do this without using the word stereo too.

For this kind of thing, I always recommend having a stereo mix option decided by the user, it lets them opt-in or out of their own special headphone downmix thing and it gives FMOD the most information about how to prepare the mix. Spatializing to 7.1 then downmixing to stereo will never sound as good as spatializing to stereo from the start when using traditional panning.

---

<div class="post-metadata">

### Author: ![gwebb](https://avatars.discourse-cdn.com/v4/letter/g/d9b06d/32.png) [@gwebb](https://qa.fmod.com/u/gwebb)
#### Post date: [June 10, 2025, 12:49am UTC](https://qa.fmod.com/t/stereo-speakers-but-driver-is-described-as-7-1-format/23019/3 "2025-06-10T00:49:57Z")

</div>

I had a feeling that might be the case. Thanks for the advice. Sounds like providing a stereo output option to the user is the way to go.

---

<div class="post-metadata">

### Author: ![gwebb](https://avatars.discourse-cdn.com/v4/letter/g/d9b06d/32.png) [@gwebb](https://qa.fmod.com/u/gwebb)
#### Post date: [June 10, 2025, 1:01am UTC](https://qa.fmod.com/t/stereo-speakers-but-driver-is-described-as-7-1-format/23019/4 "2025-06-10T01:01:54Z")

</div>

> Spatializing to 7.1 then downmixing to stereo will never sound as good as spatializing to stereo from the start when using traditional panning.

Just to clarify this comment, are you recommending that we setup another “platform” in Studio with stereo speaker mode? That would mean we have to ship two sets of banks, one for 7.1 mixing and one for stereo mixing.

Is there some other way to avoid spatializing in 7.1 then downmixing to stereo?

---

<div class="post-metadata">

### Author: ![mathew](https://yyz2.discourse-cdn.com/flex036/user_avatar/qa.fmod.com/mathew/32/431_2.png) [@mathew](https://qa.fmod.com/u/mathew)
#### Post date: [June 10, 2025, 2:27am UTC](https://qa.fmod.com/t/stereo-speakers-but-driver-is-described-as-7-1-format/23019/5 "2025-06-10T02:27:56Z")

</div>

> [@gwebb](#):
>
> are you recommending that we setup another “platform” in Studio with stereo speaker mode

Yes, by setting up a separate “platform” you can configure the spatializer in preferences to produce stereo instead of 7.1. This change will cause many tracks to switch from 7.1 to stereo. I would recommend coupling this with the “Build metadata and assets to separate banks” option so you only need to ship one copy of the sample data but can switch between the multichannel and stereo “platform” for metadata.

---

<div class="post-metadata">

### Author: ![gwebb](https://avatars.discourse-cdn.com/v4/letter/g/d9b06d/32.png) [@gwebb](https://qa.fmod.com/u/gwebb)
#### Post date: [June 10, 2025, 4:15am UTC](https://qa.fmod.com/t/stereo-speakers-but-driver-is-described-as-7-1-format/23019/6 "2025-06-10T04:15:38Z")

</div>

Okay, I’ll look into that. As long as I can share the same asset banks between the two sets of metadata banks.

Before I do that, what’s the easiest way to force a stereo downmix as a quick fix? Is it just a matter of doing `System::setSoftwareFormat(0, FMOD_SPEAKERMODE_STEREO, 0)`? Will that force a downmix from 7.1 to stereo before the signal is passed to the driver (even when the driver format is 7.1)?

Failing that, I could call `DSP::setChannelFormat()` on the head of the master channel group? Or maybe add a Panner DSP there to handle the downmix?

---

<div class="post-metadata">

### Author: ![mathew](https://yyz2.discourse-cdn.com/flex036/user_avatar/qa.fmod.com/mathew/32/431_2.png) [@mathew](https://qa.fmod.com/u/mathew)
#### Post date: [June 10, 2025, 4:50am UTC](https://qa.fmod.com/t/stereo-speakers-but-driver-is-described-as-7-1-format/23019/7 "2025-06-10T04:50:01Z")

</div>

Using `setSoftwareFormat` might have side effects, since DSPs query that for “automatic speaker mode”. Using `setChannelFormat` on the Core API master `ChannelGroup` might be your best bet, just make sure you do it after loading your Studio master bank since the Studio API does the same thing.
