[linux-audio-dev] [newbie] mixing audio streams
Jan Weil
Jan.Weil at web.de
Sat Mar 13 17:49:25 UTC 2004
Hi,
On Sat, 2004-03-13 at 17:13, Alex Marandon wrote:
[snip clipping problem]
>
> /* -- mixage, cf. http://www.vttoth.com/digimix.htm -- */
> for ( i = 0; i <= BUFFER_SIZE; i++ ) {
> mixed_buffer[i]
> = buffer1[i] + buffer2[i] - buffer1[i] * buffer2[i] / DYNAMIC_RANGE;
> }
>
buffer1 is declared as a short (i. e. usually 16 bits).
I'd guess this introduces your clipping problems.
Try this instead:
mixed_buffer[i] = buffer1[i] + buffer2[i] -
(long) buffer1[i] * buffer2[i] / DYNAMIC_RANGE;
HTH,
Jan
More information about the Linux-audio-dev
mailing list