I have a dozen of sources of digital signal, 16-bit signed words. I have implemented very simple mixer where all sample values are summed, and then shifted right to prevent overload. Unfortunately simplicity goes at a cost - if only one (or few) channels are coming into mixer at their full scale, their volume is at least 3 dB down; increasing number of input channels increases attenuation even more.
Is there any advanced (balanced?) way to have digital signal mixed?