I should probably at least add it to the alsoft-config GUI. But the intention is that it's a global (or per-device) setting based on user preference for how they want 3D sound mixed on their speakers. There are also other options for getting the front-center speaker used, such as using a custom ambisonic decoder configuration that includes it (the results of which may or may not be better than the front stablizer for a particular user). Having to configure each and every OpenAL app to do the same thing would be rather annoying, especially if the user changes their mind about which if any method to use and needs to reconfigure multiple apps, so it just needs to be done once and all OpenAL apps will do the same thing.Graf Zahl wrote:Shouldn't this be under application control? It's something I'd immediately put into the menu as an option.Chris wrote: There is an option to generate a center signal from the left/right channels. In $HOME/.config/alsoft.conf, put:Although, aside from the fact that "it's using the front-center channel now", I make no guarantee the 3D sound output will have more accurate positioning.Code: Select all
[general] front-stablizer = true
I have to be honest here, but this out-of-app configuration of OpenAL Soft is somewhat annoying.
Going into the future, the front stablizer isn't guaranteed to stick around. It's an implementation of an algorithm designed for upmixing a stereo track to 3-channel left+center+right output, and is built on a fair bit of guesswork and assumptions. It doesn't even really consider that the 2-channel input is the front-left/right speaker feeds of a surround sound mix. That it happens to work well enough for some people is great and is why I added it, but if another ambisonic decoding method (or a completely new panning method) comes along that includes the front center without notable compromise, the stablizer could just as well be dropped or repurposed. Conversely, additional settings for it may be added, like adjustable cross-over frequency and/or dividers, presuming there isn't an optimal set of parameters that don't need changing. That stuff is up in the air.
Using the AL_EFFECT_DEDICATED_DIALOGUE effect, from the ALC_EXT_DEDICATED extension (available since OpenAL Soft 1.14). Whatever is sent to it is routed to the front center channel if it exists, or gets panned normally to the front center location otherwise. A second effect slot needs to be created that can process the Dedicated Dialog effect (along side the current one for the reverb effect), and a silencing filter needs to be created (any type with its gain set to 0). Then whatever sources that you want to play on the front-center channel should have the silencing filter applied to its direct path, and its second auxiliary send should target the "Dedicated" effect slot (the first auxiliary send may or may not still target the reverb effect slot, if you want reverb with it).Graf Zahl wrote:And regarding the center channel, how can I play some sound on it so that this content gets redistributed to the other channels if there is no center?