En la noticia sobre la nueva versión de Logic se creó un debate acerca del motor y mezcla de audio de dicho programa. Intentando huir de las discusiones subjetivas sin fin, vamos a intentar echar un poco de luz sobre este aspecto. No ya de Logic sino de cualquier DAW actual. Aparte de los comentarios de esa noticia, recuerdo que hace tiempo ya tuve una charla en el foro de gama alta en un hilo sobre summing.
Si nos olvidamos de los plugins, el motor de audio de un DAW es basicamente un encaminador de flujo (stream) de audio. Ese audio digital son cadenas de números que se mezclan (se suman), se atenúan o amplifican (se multiplica por un valor), se panoramizan (ambas cosas). En los tiempos analógicos el concepto era el mismo, pero los métodos muy distintos. Esos procesos eran realizados por transistores, condensadores, válvulas, etc. El resultado era similar pero cada pieza electrónica tenía sus propias peculiaridades. El resultado es que no había modelo de mesa de mezclas que sonara igual, y diseñar un equipo con resultados musicales deseables se convertía en todo un arte.
Las cosas cambian cuando se trabaja con un DAW. A pesar de ello heredamos cierta forma de pensar de los equipos analógicos. Eso y nuestra irremediable tendencia al elitismo hacen que veamos algo misterioso y lleno de algoritmos extravagantes el proceso de mezcla de un secuenciador de audio. Así se termina con interminables discusiones acerca de si Cubase o Logic tienen mejor sonido, si Digital Performer suena más cálido o Live tiene un motor "profesional". Todo eso pasando por alto que DAC tiene cada uno, que monitores o la acústica de la sala. No voy a entrar a valorar la cualidades sonoras de estos programas sino a explicar que factores pueden influir en... ¿la calidad de sonido? no, en que los números de ese audio digital cambien y de qué manera.
Los DAC actuales son en su mayoría de 24 bits, eso quiere decir que permiten 16.777.216 valores diferentes para representar la onda sonora con un margen dinámico de 144dB. Cada bit de resolución aporta 6dB de rango, así un CD tiene 16 bits y 96dB de rango dinámico. Más de 24 bits es un problema porque al pasar a señal analógica se encontraría con el ruido inherente de los componentes electrónicos. En todo caso 24 bits son más que suficientes incluso para un gran concierto a todo volumen.
[ Imagen no disponible ]
Eso quiere decir que un DAW debe trabajar con no menos de 24 bits para aprovechar toda la capacidad de los convertidores. La mayoría del software actual trabajan a 32 bits, pero en coma flotante lo cual no significa que tenga 32 bits de resolución. Olvidemos eso ahora y pensemos en un programa que trabaje en aritmética entera para simplificar las cosas, por ejemplo ProTools bajo TDM. Este programa tiene un bus de canal individual de 24 bits. Los plugins tienen una entrada y salida a esa resolución lo que no quita para que internamente puedan trabajar a más bits. El motivo para hacer esto es que ciertos cálculos hacen cambiar los valores de magnitud lo cual puede hacer que se coman bits por arriba o por abajo.
Cuando esos buses individuales llegan al mezclador ProTools HD los convierte a valores de 48 bits de esta forma:
Una vez en ese formato el procesador multiplica o divide según el volumen de la mezcla en su registro de 56 bits (8 bits extra para headroom) y suma todos los valores de cada canal. Al tener 24 bits a la derecha y 8 a la izquierda se evita perder ningún bit en el proceso de mezcla. Por ejemplo, tenemos un valor que se atenúa 6dB y luego se le suma de otro canal otro valor igual también atenuado 6dB. La suma de ambos debería ser el mismo valor sin atenuar pero si no contamos con bits extra puede pasar cosas como esta:
A mayor número de canales en la mezcla, mayor cantidad de bits se pueden perder. Teniendo bits extra en el sumador se evita ese problema. Una vez ya hecha la mezcla los datos pueden ser convertidos a 24 bits otra vez, y si se trabaja en aritmética entera se puede hacer dithering con los bits residuales antes de eliminarlos. Como podemos ver no se le puede reprochar nada al sumador de ProTools HD. La misión de un DAW es ser transparente no perdiendo bits por el camino.
Los DAW nativos trabajan sin embargo en coma flotante (Logic, Cubase, Sonar, Digital Performer, Live, ProTools LE, etc.) El motivo es que el procesador del ordenador está especialmente preparado para cálculos en coma flotante, muy versátiles para cualquier tipo de problema numérico. Un flotante de 32 bits tienen el siguiente formato:
El signo es fácil, representa si el número es positivo o negativo. La mantisa es el número normalizado, y junto con el signo determinan la resolución, en este caso 24 bits. El exponente indica la magnitud del número, voy a utilizar un símil para explicarlo de forma sencilla:
125 km
125 sería en este caso la mantisa y km el exponente. De la misma manera podríamos decir:
125 mm
Ahora la mantisa es igual pero el exponente indica una magnitud mucho más pequeña. Así podemos utilizar los flotantes para expresar números muy grandes o muy pequeños sin perder resolución.
Con un número flotante podemos atenuar la señal o subirla y no recortaremos bits ya que el exponente se ajustará a la magnitud adecuada. Es por eso que no nos encontramos con el clipping mientras trabajamos dentro del DAW. Entonces, ¿es innecesario aumentar el número de bits para la mezcla? Volvamos al símil:
125 km+125 mm= 125 km
El exponente puede expresar una sola magnitud, así que al sumar dos valores de magnitud diferente desaparecen los bits menos significativos. Para evitar la pérdida de bits residuales existen algoritmos como el de Kahan pero lo más optimo y sencillo es emplear para el sumador flotantes dobles de 64 bits, disponibles desde tiempos del 386. Eso da una mantisa+signo de 53 bits más 11 bits de exponente.
Los DAW que oficialmente han declarado usar más de 32 bits en el mezclador son:
Referencias sobre los motores de audio:
En los demás aparece la información sobre los bits en su página web. Resulta curioso que Logic y Cubase, los más conocidos son precisamente de los que hay serias dudas acerca de su sumador.
Termino con algunas conclusiones:
Saludos.
Si nos olvidamos de los plugins, el motor de audio de un DAW es basicamente un encaminador de flujo (stream) de audio. Ese audio digital son cadenas de números que se mezclan (se suman), se atenúan o amplifican (se multiplica por un valor), se panoramizan (ambas cosas). En los tiempos analógicos el concepto era el mismo, pero los métodos muy distintos. Esos procesos eran realizados por transistores, condensadores, válvulas, etc. El resultado era similar pero cada pieza electrónica tenía sus propias peculiaridades. El resultado es que no había modelo de mesa de mezclas que sonara igual, y diseñar un equipo con resultados musicales deseables se convertía en todo un arte.
Las cosas cambian cuando se trabaja con un DAW. A pesar de ello heredamos cierta forma de pensar de los equipos analógicos. Eso y nuestra irremediable tendencia al elitismo hacen que veamos algo misterioso y lleno de algoritmos extravagantes el proceso de mezcla de un secuenciador de audio. Así se termina con interminables discusiones acerca de si Cubase o Logic tienen mejor sonido, si Digital Performer suena más cálido o Live tiene un motor "profesional". Todo eso pasando por alto que DAC tiene cada uno, que monitores o la acústica de la sala. No voy a entrar a valorar la cualidades sonoras de estos programas sino a explicar que factores pueden influir en... ¿la calidad de sonido? no, en que los números de ese audio digital cambien y de qué manera.
Los DAC actuales son en su mayoría de 24 bits, eso quiere decir que permiten 16.777.216 valores diferentes para representar la onda sonora con un margen dinámico de 144dB. Cada bit de resolución aporta 6dB de rango, así un CD tiene 16 bits y 96dB de rango dinámico. Más de 24 bits es un problema porque al pasar a señal analógica se encontraría con el ruido inherente de los componentes electrónicos. En todo caso 24 bits son más que suficientes incluso para un gran concierto a todo volumen.
[ Imagen no disponible ]
Eso quiere decir que un DAW debe trabajar con no menos de 24 bits para aprovechar toda la capacidad de los convertidores. La mayoría del software actual trabajan a 32 bits, pero en coma flotante lo cual no significa que tenga 32 bits de resolución. Olvidemos eso ahora y pensemos en un programa que trabaje en aritmética entera para simplificar las cosas, por ejemplo ProTools bajo TDM. Este programa tiene un bus de canal individual de 24 bits. Los plugins tienen una entrada y salida a esa resolución lo que no quita para que internamente puedan trabajar a más bits. El motivo para hacer esto es que ciertos cálculos hacen cambiar los valores de magnitud lo cual puede hacer que se coman bits por arriba o por abajo.
Cuando esos buses individuales llegan al mezclador ProTools HD los convierte a valores de 48 bits de esta forma:
11111111 11111111 11111111 00000000 00000000 00000000
{---- bits originales ---} {----- bits añadidos ----}
Una vez en ese formato el procesador multiplica o divide según el volumen de la mezcla en su registro de 56 bits (8 bits extra para headroom) y suma todos los valores de cada canal. Al tener 24 bits a la derecha y 8 a la izquierda se evita perder ningún bit en el proceso de mezcla. Por ejemplo, tenemos un valor que se atenúa 6dB y luego se le suma de otro canal otro valor igual también atenuado 6dB. La suma de ambos debería ser el mismo valor sin atenuar pero si no contamos con bits extra puede pasar cosas como esta:
00000010 11111111 00000001 => Valor original
00000001 01111111 10000000 => Valor atenuado 6dB apróx. (dividir por 2)
00000001 01111111 10000000 => Mismo valor en otro canal atenuado también 6dB
-------------------------- + Se suman los dos valores atenuados
00000010 11111111 00000000 => ¡El último bit a pasado a 0! El valor ya no es el mismo.
A mayor número de canales en la mezcla, mayor cantidad de bits se pueden perder. Teniendo bits extra en el sumador se evita ese problema. Una vez ya hecha la mezcla los datos pueden ser convertidos a 24 bits otra vez, y si se trabaja en aritmética entera se puede hacer dithering con los bits residuales antes de eliminarlos. Como podemos ver no se le puede reprochar nada al sumador de ProTools HD. La misión de un DAW es ser transparente no perdiendo bits por el camino.
Los DAW nativos trabajan sin embargo en coma flotante (Logic, Cubase, Sonar, Digital Performer, Live, ProTools LE, etc.) El motivo es que el procesador del ordenador está especialmente preparado para cálculos en coma flotante, muy versátiles para cualquier tipo de problema numérico. Un flotante de 32 bits tienen el siguiente formato:
1 10000000 10000000000000000000000
\ Signo \ Exponente \ Mantisa
El signo es fácil, representa si el número es positivo o negativo. La mantisa es el número normalizado, y junto con el signo determinan la resolución, en este caso 24 bits. El exponente indica la magnitud del número, voy a utilizar un símil para explicarlo de forma sencilla:
125 km
125 sería en este caso la mantisa y km el exponente. De la misma manera podríamos decir:
125 mm
Ahora la mantisa es igual pero el exponente indica una magnitud mucho más pequeña. Así podemos utilizar los flotantes para expresar números muy grandes o muy pequeños sin perder resolución.
Con un número flotante podemos atenuar la señal o subirla y no recortaremos bits ya que el exponente se ajustará a la magnitud adecuada. Es por eso que no nos encontramos con el clipping mientras trabajamos dentro del DAW. Entonces, ¿es innecesario aumentar el número de bits para la mezcla? Volvamos al símil:
125 km+125 mm= 125 km
El exponente puede expresar una sola magnitud, así que al sumar dos valores de magnitud diferente desaparecen los bits menos significativos. Para evitar la pérdida de bits residuales existen algoritmos como el de Kahan pero lo más optimo y sencillo es emplear para el sumador flotantes dobles de 64 bits, disponibles desde tiempos del 386. Eso da una mantisa+signo de 53 bits más 11 bits de exponente.
Los DAW que oficialmente han declarado usar más de 32 bits en el mezclador son:
- ProTools HD: Mezclador de 48 bits de números enteros.
- Sonar: Motor de mezcla de 64 bits.
- Ableton Live desde la 7: 64 bits flotante en cualquier punto donde haya mezcla (mezclador, envíos, racks).
- Digital Performer: El canal master es a 64 bits, los canales individuales a 32 (todo flotante).
- Reaper: 64 bits para el motor y los plugins nativos.
Referencias sobre los motores de audio:
- El mezclador de ProTools TDM A quien le interese este tema le recomiendo leerlo.
- Capítulo 30 de manual de Live Todos los secuenciadores deberían tener una hoja informativa de este tipo.
- Logic 9 FAQ djbubu encontró la única referencia al motor de Logic 9 que conozcamos.
- Cubase 5 summing No es oficial, pero es posible.
En los demás aparece la información sobre los bits en su página web. Resulta curioso que Logic y Cubase, los más conocidos son precisamente de los que hay serias dudas acerca de su sumador.
Termino con algunas conclusiones:
- La profundidad de bits de los datos no tiene nada que ver con que un programa esté en 32 o 64 bits. Que un sistema operativo o una aplicación esté codificada a 64 bits solo quiere decir que puede direccionar más memoria. Es útil para el sistema operativo más que para la mayoría de aplicaciónes (excepto en el marketing).
- 32 bits para un canal individual son suficientes para obtener la calidad máxima de los convertidores. Un plugin siempre puede utilizar 64 bits internamente en los puntos críticos. Usar 64 bits de datos en todo el encaminamiento sería una pérdida de potencia de cálculo. Quizás en el master podría tener alguna utilidad los 64 bits para aprovechar esos bits que ha obtenido el sumador, pero es un beneficio muy marginal y no se sabe si audible.
- Un sumador que use 24 o 32 bits de datos perderá bits objetivamente con una probabilidad más o menos alta dependiendo del número de canales. Dos pistas son suficientes para que pueda haber pérdida.
- No afirmo ni niego que esa pérdida de bits sea audible. El rango dinámico de los seres humanos está en 120dB, y el de los mejores convertidores también. 24 bits de profudidad dan 144dB de rango dinámico, 4 bits por encima.
- Los sumadores digitales (caso de los DAW) no tienen cualidades propias como un sumador analógico. Sin embargo pueden perder información o no perderla. Se supone que los buenos son los que no la pierden.
Saludos.