Intento mezclar 2 transmisiones de audio PCM lineales de 16 bits y parece que no puedo superar los problemas de ruido. Creo que provienen del desbordamiento cuando se mezclan muestras.Mezcla de flujos de PCM lineales de 16 bits y evitar el recorte/desbordamiento
He siguiente función ...
short int mix_sample(short int sample1, short int sample2)
{
return #mixing_algorithm#;
}
... y aquí es lo que he tratado como # # mixing_algorithm
sample1/2 + sample2/2
2*(sample1 + sample2) - 2*(sample1*sample2) - 65535
(sample1 + sample2) - sample1*sample2
(sample1 + sample2) - sample1*sample2 - 65535
(sample1 + sample2) - ((sample1*sample2) >> 0x10) // same as divide by 65535
Algunos de ellos han producido mejores resultados que otros, pero incluso el el mejor resultado contenía bastante ruido.
¿Alguna idea de cómo resolverlo?
puede escribir el algoritmo completo, no puedo ver ninguna asignación !! – perilbrain
Cuando divide la muestra 1 y la muestra 2 por 2, obtiene un rango de error de 1. –