by Chris » Tue Jun 14, 2022 2:47 am
For some reason the device is reporting 4 channels, but doesn't specify what those channels are (a channel mask of 0), so there's no indication of how to feed them. And unlike 1 or 2 channels that can typically be assumed to be mono or stereo for consumer systems, there are multiple configurations that 4 channel can be: quadraphonic (front-left, front-right, back-left, back-right), 3-1 (front-left, front-right, front-center, rear-center), and 3.1 (front-left, front-right, front-center, LFE), being common-ish.
If you can't configure the device to report a proper channel configuration, then I'll have to modify OpenAL to handle 'raw' channels with unspecified channel positions, which it then has to be conservative about (i.e. up to 2-channel stereo only and leaving extra channels silent, if not explicitly configured otherwise).
Edit:
Azagthoth wrote:I figured it out. I needed to add an alsoft.ini file with "drivers = winmm" to my GZDoom folder. Winmm was the only backend that worked. A little bit convoluted way of handling things, I must say. Why not have this option in-game instead? Or better yet, have it automatically pick the first one that works.
The problem is specific to the device, it doesn't know there will be a problem until it tries to open that particular device, at which point it's already selected the backend to use. The WinMM backend is particularly limited (only mono or stereo output, no headphone detection, higher latency, truncated device names), and should only be used as a last-ditch effort if neither WASAPI or DSound are working.
For some reason the device is reporting 4 channels, but doesn't specify what those channels are (a channel mask of 0), so there's no indication of how to feed them. And unlike 1 or 2 channels that can typically be assumed to be mono or stereo for consumer systems, there are multiple configurations that 4 channel can be: quadraphonic (front-left, front-right, back-left, back-right), 3-1 (front-left, front-right, front-center, rear-center), and 3.1 (front-left, front-right, front-center, LFE), being common-ish.
If you can't configure the device to report a proper channel configuration, then I'll have to modify OpenAL to handle 'raw' channels with unspecified channel positions, which it then has to be conservative about (i.e. up to 2-channel stereo only and leaving extra channels silent, if not explicitly configured otherwise).
Edit:
[quote="Azagthoth"]I figured it out. I needed to add an alsoft.ini file with "drivers = winmm" to my GZDoom folder. Winmm was the only backend that worked. A little bit convoluted way of handling things, I must say. Why not have this option in-game instead? Or better yet, have it automatically pick the first one that works.[/quote]
The problem is specific to the device, it doesn't know there will be a problem until it tries to open that particular device, at which point it's already selected the backend to use. The WinMM backend is particularly limited (only mono or stereo output, no headphone detection, higher latency, truncated device names), and should only be used as a last-ditch effort if neither WASAPI or DSound are working.