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
