audio: asio "downmix" 7.1 to stereo (#736)

## Link to GitHub Issue or related Pull Request, if one exists
#730 

## Description of change
Add an option that extracts channels from 7.1 ASIO and presents to 2-ch
ASIO. Same idea as the SDVX 2ch fix except for gitadora we are
duplicating the center channel to front.

## Testing
Tested SDVX and GFDM Arena.
This commit is contained in:
bicarus
2026-06-06 03:11:40 -07:00
committed by GitHub
parent f23c359114
commit 0457262472
5 changed files with 370 additions and 88 deletions
+21 -4
View File
@@ -1086,10 +1086,7 @@ static const std::vector<OptionDefinition> OPTION_DEFINITIONS = {
{
.title = "GitaDora Two Channel Audio",
.name = "2ch",
.desc = "Attempt to reduce audio channels down to just two channels.\n\n"
"Arena Model: downmixes 7.1 to stereo using the AC-4 stereo downmix coefficients "
"(ETSI TS 103 190-1). The WASAPI Stereo Downmix option, if set, overrides this "
"algorithm.",
.desc = "Attempt to reduce audio channels down to just two channels.",
.type = OptionType::Bool,
.game_name = "GitaDora",
.category = "Game Options",
@@ -1985,6 +1982,26 @@ static const std::vector<OptionDefinition> OPTION_DEFINITIONS = {
{"side", "Side channels only"},
},
},
{
// AsioDownmixToStereo
.title = "ASIO 7.1 to Stereo Downmix",
.name = "asiodownmix",
.desc = "Extracts a single stereo channel pair from a multi-channel ASIO output, "
"mapping the selected pair to the device's first two channels.\n\n"
"Channel pairs assume a standard 7.1 ASIO layout (0-indexed):\n\n"
"front: channels 0/1 (front left/right).\n\n"
"center: channel 2 (front center, duplicated to both outputs).\n\n"
"rear: channels 4/5 (rear left/right).\n\n"
"side: channels 6/7 (side left/right).",
.type = OptionType::Enum,
.category = "Audio",
.elements = {
{"front", "Front channels (0/1)"},
{"center", "Center channel (2)"},
{"rear", "Rear channels (4/5)"},
{"side", "Side channels (6/7)"},
},
},
{
// VolumeBoost
.title = "WASAPI/ASIO Boost Audio Volume",