[linux-audio-dev] Mixing signals

Alfons Adriaensen fons.adriaensen at alcatel.be
Mon May 23 09:18:50 UTC 2005

On Mon, May 23, 2005 at 10:45:51AM +0200, Viceic Predrag wrote:

> 1) sum L and R and divide by 2 : well.. 
> 2) if L>0 and R>0 take the max, if L<0 and R<0, take the min, else add. : 
> current implementation
> 3) add, and then normalize to the max after summation.

Options 2 and 3 are not linear and will introduce distortion. Depending
on what you original signals are, this may be benign, or render your
signal completely useless.

The only linear way of doing this (assuming both channels have the same
gain), is  sum = a * (L + R). The value of a here is debatable, something
between 0.5 and 0.75 will do in most cases.


More information about the Linux-audio-dev mailing list