Very long shot feature request:
If >2 channel audio data is available, to combine the L&R channels as follows:
L = FL + a*Center + b*Sub
R = FR + a*Center + b*Sub
where a,b are user configurable ratios.
Current multi-channel mixing is as follows:
uint32_t left_channels = channel_front_left | channel_back_left | channel_front_center_left | channel_side_left | channel_top_front_left | channel_top_back_left;
uint32_t right_channels = channel_front_right | channel_back_right | channel_front_center_right | channel_side_right | channel_top_front_right | channel_top_back_right;
uint32_t center_channels = channel_front_center | channel_lfe | channel_back_center | channel_top_center | channel_top_front_center | channel_top_back_center;
std::array<int8_t, defined_channel_count> mix_factors{0, 0, -3, -10, -3, -3, -6, -6, -6, -3, -3, -6, -3, -6, -3, -3, -6, -3}; // front_left, front_right, front_center, lfe, back_left, back_right, front_center_left, front_center_right, back_center, side_left, side_right, top_center, front_left, front_center, front_right, back_left, back_center, back_right
Left panel gets left and center channels. Right panel right gets right and center channels. The mix factors attenuate center channels by half, generally, since they are mixed into both channels. There are too many channels (18) to intuitively allow for a specific mix factor for each. In case it wasn't obvious, the mix factors are in decibels.