Me gustaría mezclar dos o más canales de audio PCM (por ejemplo, muestras grabadas) digitalmente de una manera acústicamente fiel, preferiblemente en tiempo casi real (lo que significa poco o ningún adelanto).
La forma físicamente "correcta" de hacer esto es sumar las muestras. Sin embargo, cuando agrega dos muestras arbitrarias, el valor resultante podría ser hasta dos veces el valor máximo.
Por ejemplo, si sus muestras son valores de 16 bits, el resultado será hasta 65536 * 2. Esto da como resultado el recorte.
La solución ingenua aquí es dividir por N, donde N es el número de canales que se mezclan. Sin embargo, esto da como resultado que cada muestra sea 1 / Nth tan alta, lo que es completamente poco realista. En el mundo real, cuando dos instrumentos se tocan simultáneamente, cada instrumento no llega a la mitad de volumen.
A partir de la lectura, un método común de mezcla es: resultado = A + B - AB, donde A y B son las dos muestras normalizadas que se mezclan, y AB es un término para garantizar que los sonidos más fuertes sean cada vez más "suaves".
Sin embargo, esto introduce una distorsión de la señal. ¿Es aceptable este nivel de distorsión en la síntesis de audio de alta calidad?
¿Qué otros métodos hay para resolver este problema? Estoy interesado en algoritmos eficientes de menor calidad, así como algoritmos menos eficientes de alta calidad.
Estoy haciendo mi pregunta en el contexto de la síntesis de música digital, con el propósito de mezclar múltiples pistas de instrumentos. Las pistas pueden ser audio sintetizado, muestras pregrabadas o entrada de micrófono en tiempo real.