La calidad de audio de los DAW

#1 por guillermoruiz el 28/07/2009
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.

thumb.php?f=SampleRateVsBitDepth.gif&width=300

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:

[code]11111111 11111111 11111111 00000000 00000000 00000000
{---- bits originales ---} {----- bits añadidos ----}[/code]

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:

[code]
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.
[/code]
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:
[code]
1 10000000 10000000000000000000000
\ Signo \ Exponente \ Mantisa
[/code]

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:
[list]
[*] 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.[/*][/list]

Referencias sobre los motores de audio:
[list]
[*] 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.[/*][/list]
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:
[list]
[*] 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.[/*][/list]

Saludos.
Subir
4
#2 por Triames el 28/07/2009
Vaya currada te has pegado, sí señor =D>
Gracias, a favoritos de cabeza, que tengo que leerlo unas cuantas veces con la wikipedia en otra ventana

https://soundcloud.com/triames

Subir
#3 por Ferdinanz el 28/07/2009
Ostias me ha costado un huevo leerlo,demasiados tecnicismos para mi sistema unineuronal pero son interesantes estas cosas que dices sobre los motores de los daws
Gracias por el post
Salu2
Subir
#4 por Ferdinanz el 28/07/2009
o sea que segun dices conviene abrir los proyectos en 32 bits coma flotante en vez de en 24?
Subir
1
#5 por Lucas Rei Ramos el 28/07/2009
Fantástico. A mí me ha quedado bastante claro. Por fin entiendo lo que es la coma flotante.
El tema es si la diferencia de sumar a 32 o 64 bits puede llegar a ser audible. Es una pena no poder saber la naturaleza del sumador de Logic.

Pi graos
http://www.soundcloud.com/pigraos
http://www.facebook.com/pigraos

Subir
#6 por Malve el 28/07/2009
=D> =D> =D> =D> =D> =D> =D> =D> =D>

Tremendo guillermoruiz, que grande eres!!!

Y lo mejor de todo es que has empleado un tiempo muy valioso en hacer un artículo fantástico para una banda de energúmenos que nos llamamos Hispasónicos... :D


Muchas gracias guillermoruiz
Subir
#7 por S3RG10 el 28/07/2009
Una entrada excelente al hilo.
Es un verdadero placer tener a gente así en este foro. Gracias.

Yo, como Triames, tengo que ponerme a estudiar un poco porque me he perdido en un par de conceptos... No es tu culpa.

A ver como va evolucionando esto.

p.d. me parece muy curioso el nombre de Mantisa :mrgreen:
Subir
#8 por pylorca el 28/07/2009
muy buena explicacion!
Subir
#9 por Tio Harpo Molon el 28/07/2009
Acá varios hispasonicos hacen también lo suyo respecto al tema, aunque nunca esta de mas este es un tema recurrente y son varias las veces que se ha tratado y varias la veces que se ha concluido lo mismo.

ventajas-utilizar-motor-audio-bits-t264527.html

bit-como-t267641.html
Subir
#10 por neph el 28/07/2009
ole ole ole y ole,peazo de explicacion guillermoruiz
=D> =D> =D> =D> =D> =D> =D> =D>
Subir
#11 por Alexmx03 el 28/07/2009
Buena explicacion, si señor
Subir
#12 por S3RG10 el 28/07/2009
harpocrates666 escribió:
Acá varios hispasonicos hacen también lo suyo respecto al tema, aunque nunca esta de mas este es un tema recurrente y son varias las veces que se ha tratado y varias la veces que se ha concluido lo mismo.

ventajas-utilizar-motor-audio-bits-t264527.html

bit-como-t267641.html



Tela con esos hilos también.
Ya conocía el dominio de Rafa1981 en la materia.

Me empiezan a quedar claros algunos temas.
Pero vaya tela que parece que este en clase otra vez... :?
Subir
#13 por DeLoreal el 28/07/2009
Muchas gracias guillermoruiz! Un post de referencia fenomenal!
Subir
#14 por ldh el 28/07/2009
gracias por la info!!!...... siempre es bueno culturizarse un poco!. :D
saludos!.

Mucho lirili y poco lerele!!!!

Subir
#15 por guillermoruiz el 28/07/2009
Gracias a todos.

harpocrates666, no había visto esos hilos, veo que Rafa1981 puso mucha luz en la materia.

Ferdinanz escribió:
o sea que segun dices conviene abrir los proyectos en 32 bits coma flotante en vez de en 24?


No, las fuentes de audio están perfectas en 24 bits, yo hablo del motor de audio de los DAW. Los flotantes de 32 lo que aportan es mayor capacidad de rango dinámico para los vaivenes del procesado y mezcla. Un archivo de audio es estático no necesita un margen de magnitud. Cuando el DAW lee esos archivos los convierte a flotantes al pasar a memoria.
Subir
Respuesta rápida

Regístrate o para poder postear en este hilo