Old 10-20-2009, 11:52 AM   #1
pylorca
Human being with feelings
 
Join Date: Apr 2009
Posts: 191
Default Proyecto 32 bits, plugins como waves 24 bits

Buenas gentes, voy a mostrar una duda que tengo a la hora de mezclar en un proyecto de 32 bitfp. El hilo relacionado está en hispasonic http://www.hispasonic.com/comunidad/...s-t286026.html

lo voy a citar para que no tengan que entrar:

Quote:
Yo las mezclas las estoy realizando en 32 bits (grabado con audio en 24 bits) en este caso no hay problema al aumentar los bits, porque no se pierde nada...

ahora, los plugins de waves por ejemplo, trabajan en 24 bits... si yo pongo un eq al ppio de la cadena que trabaja a 32 bits, luego pongo un plugin de waves que trabaja a 24, estoy perdiendo datos y calidad (almenos que realize un dithering antes de agregar el plugin waves lo cual es anti practico)...

entonces, para los que la tienen clara, no es recomendable usar plugins de 24 bits en una mezcla de 32?
Ahora, reaper como funciona al trabajar en un proyecto de 32 o 64 bits?
la pista de audio está a 24 bits, el proyecto a 32, los insertos funcionan a 32 bits? o funciona a 24 bits (la profundidad del audio wav) y luego hace la suma en 32?

en caso de que los insertos sean a 24 y la suma a 32, los buses reciben datos de 32 bits, al poner un plugin por ejemplo de waves (que funcionan a 24) estoy perdiendo datos por lo que deberia hacer un dithering?


Saludos!
pylorca is offline   Reply With Quote
Old 10-20-2009, 03:00 PM   #2
DerMetzgermeister
Human being with feelings
 
DerMetzgermeister's Avatar
 
Join Date: Feb 2008
Posts: 1,467
Default

Reaper funciona siempre a 64 bits internamente.

Quote:
Originally Posted by pylorca View Post
en caso de que los insertos sean a 24 y la suma a 32, los buses reciben datos de 32 bits, al poner un plugin por ejemplo de waves (que funcionan a 24) estoy perdiendo datos por lo que deberia hacer un dithering?
La diferencia es tan infinitesimal que es inaudible. Trata esta prueba, renderiza un track sin ningun efecto a 32 bits. Ahora renderizalo con un plugin de Waves insertado, tal como un EQ pero dejalo en neutral. La idea es que la señal se "trunque" a 24 bits al pasar por ese efecto pero sin que la cambie.
Ahora carga ambos archivos y trata de nulificarlos.
No lo he hecho yo pero apuesto a que se nulificaran totalmente o con diferencias de menos ciento y tantos decibeles, en el rango inaudible.

Solo necesitas hacer dither y/o noise shaping al bajar la resolucion a 16 bits.

Francamente, arriba de 44.1 KHz y 24 bits las diferencias entre formatos son mas teoricas que practicas.
DerMetzgermeister is offline   Reply With Quote
Old 10-20-2009, 03:57 PM   #3
pylorca
Human being with feelings
 
Join Date: Apr 2009
Posts: 191
Default

DerMetzgermeister, gracias por responder

Hice la prueba, casi se cancelan, a -128dbfs, subiendo el fader master a +24dbfs... osea que se oye ruido rosa a -152... osea que es verdad, casi inescuchable

Saludos!
pylorca is offline   Reply With Quote
Old 10-20-2009, 05:00 PM   #4
GestionSP
Human being with feelings
 
GestionSP's Avatar
 
Join Date: Jun 2009
Posts: 99
Default

No estoy seguro, pero creo que para pasar de 32 fp a 24 enteros no es necesario aplicar dithering, pues, estas pasando de 24 bits con 8 cifras extra, a 24 bits sin cifras extra... en teoria ambos son 24 bits.

A ver si alguien mas entendido lo aclara.

Saludos
__________________
Digital Audio Recording & Music Production

www.gestionsp.cl
GestionSP is offline   Reply With Quote
Old 10-20-2009, 05:31 PM   #5
DerMetzgermeister
Human being with feelings
 
DerMetzgermeister's Avatar
 
Join Date: Feb 2008
Posts: 1,467
Default

Quote:
Originally Posted by GestionSP View Post
No estoy seguro, pero creo que para pasar de 32 fp a 24 enteros no es necesario aplicar dithering, pues, estas pasando de 24 bits con 8 cifras extra, a 24 bits sin cifras extra... en teoria ambos son 24 bits.

A ver si alguien mas entendido lo aclara.

Saludos
Soy una piedra para la teoria matematica pero en todo caso estoy seguro de que el dither en todos los casos es innecesario para trabajar internamente. El dither de hecho añade ruido al sonido (aunque sea en frecuencias inaudibles que luego son removidas por filtros).
El dither si se utiliza es solo en el ultimo paso al masterizar y pasar de 24 bits o mayor a 16 bits.
DerMetzgermeister is offline   Reply With Quote
Old 10-20-2009, 05:35 PM   #6
GestionSP
Human being with feelings
 
GestionSP's Avatar
 
Join Date: Jun 2009
Posts: 99
Default

Claro, pero ahi pasas de 24 a 16 ENTEROS. Por eso se utiliza el Dither.

Como te digo es lo que he leido, pero en teoria, no debiera usarse dither para truncar de 32 flotantea 24 enteros, porq ambos son 24.

Saludos
__________________
Digital Audio Recording & Music Production

www.gestionsp.cl
GestionSP is offline   Reply With Quote
Old 10-21-2009, 11:03 AM   #7
pylorca
Human being with feelings
 
Join Date: Apr 2009
Posts: 191
Default

Ok, gracias gente!

igualmente el ruido que mete es muy poco, voy a averiguar mas sobre como funciona el tema de los bits fp
pylorca is offline   Reply With Quote
Old 11-04-2009, 10:47 PM   #8
pylorca
Human being with feelings
 
Join Date: Apr 2009
Posts: 191
Default

Quote:
Originally Posted by GestionSP View Post
Claro, pero ahi pasas de 24 a 16 ENTEROS. Por eso se utiliza el Dither.

Como te digo es lo que he leido, pero en teoria, no debiera usarse dither para truncar de 32 flotantea 24 enteros, porq ambos son 24.

Saludos
Me estoy haciendo un lio barbaro!

si son 32 bits flotantes entonces, al pasar de 24 fijos a 32 flotantes estoy perdiendo datos, ya que no seria agregarle 8 ceros para llegar a los 32 bits... porque el calculo seria diferente....

Ahi en la wikipedia explica como es la cosa:

http://es.wikipedia.org/wiki/Coma_flotante
http://es.wikipedia.org/wiki/Coma_fija


Lo ideal seria trabajar en un sistema de 48 bits punto fijo como lo hace protools ya que en este caso estas conversiones no dan perdidas de datos ya que siempre está trabajando en punto fijo y no tiene que hacer calculos para trabajar en coma flotante...

Habria que averiguar mas sobre como trabaja reaper internamente.
pylorca is offline   Reply With Quote
Old 11-04-2009, 10:53 PM   #9
GestionSP
Human being with feelings
 
GestionSP's Avatar
 
Join Date: Jun 2009
Posts: 99
Default

al pasar de 24 enteros a 32 flotantes no estas perdiendo datos, ni estas ganando tampoco... simplemente estas agregando bits "Vacios" para que estos sean gastados en la cadena de procesamiento, y no afecte la calidad de la señal. Pro tools trabaja con 48 enteros, pero segun lei en hispasonic por un entendidisimo en la materia la cosa seria asi:

el audio esta en 24 bits (El maximo q admite pro tools) luego para entrar a un proceso TDM, lo sube a 48, y cuando sale de este le aplica dither para que vuelva a 24. y es asi cada vez que pasa por un TDM... no se si sera 100% cierto, pero el post esta en hispasonic... bueno hay muchos relacionados con esto.

Lo que yo te puedo aclarar es que al apsar de 24 fijos a 32 flotantes no pierdes.

Saludos
__________________
Digital Audio Recording & Music Production

www.gestionsp.cl
GestionSP is offline   Reply With Quote
Old 11-04-2009, 11:27 PM   #10
pylorca
Human being with feelings
 
Join Date: Apr 2009
Posts: 191
Default

claro, a lo que voy, es que al pasar de 24 fijos a 32 flotantes no agregas bits vacios, ya que el formato de representación cambia...

agregar bits vacios seria cierto solo si se pasaran de 24 fijos a 32 fijos, en este caso es valida esa afirmación.

Pero leyendo la wikipedia esto no es asi. Leelo te lleva poco tiempo y es muy interesante.

haciendo unas pruebas con python:

Code:
>>> 1+1
2
>>> 1.1+1
2.1000000000000001
que paso en el ultimo, la suma deberia dar 2.1 y no 2.1000000000000001, lo que pasa es que estas sumando en punto flotante y no es tan exacto como en punto fijo


Lo que dice en la wikipedia sobre coma flotante:
Quote:
La notación en coma flotante es más lenta de procesar y menos precisa que la notación en coma fija, pero dado un tamaño fijo de dígitos, permite un mayor rango en los números que se pueden representar con ellos.

Osea segun lo dicho en la wp, para poner un ejemplo (vamos con 8 bits para no hacerlo mas dificil de leer)

8 bits punto fijo:
11110101

ahora pasamos esos 8 bits punto fijo a 16 punto fijo:
11110101 00000000

ahora si queremos pasar esos 8 bits fijos a 16 punto flotante seria otra la representacion, y lo de agregar ceros a la derecha ya no aplica ya que seria

r = m * b^e

r seria el numero, m la mantisa y b seria 2 (porque es binario) y e seria la cantidad de bits...

la representación o la estructura del numero es muy diferente.

muy complejo todo esto. A lo que voy es que no es agregar bits vacios al pasar de 24 punto fijo a 32 o 64 o 128 flotantes.
pylorca is offline   Reply With Quote
Old 11-05-2009, 08:46 AM   #11
GestionSP
Human being with feelings
 
GestionSP's Avatar
 
Join Date: Jun 2009
Posts: 99
Default

UUfff... eso ya supero todos mis conocimientos, voi a leer el articulo de wp para poder entenderlo mejor, en realidad es complejo este asunto.

Si logras entender mas al respecto, postealo aqui, a mi tambien me interesa mucho el tema, y por supuesto, lo que yo logre investigar o aprender tmbn l comentare.

Saludos
__________________
Digital Audio Recording & Music Production

www.gestionsp.cl
GestionSP is offline   Reply With Quote
Old 11-05-2009, 09:07 AM   #12
pylorca
Human being with feelings
 
Join Date: Apr 2009
Posts: 191
Default

jejej ok,

despues cuando termine de trabajar, voy a ver si me fijo cuales son los calculos para transformar punto fijo a float, y veo si pierde exactitud o lo que sea,

la verdad es complicado pero muy interesante saber la "posta", porque todo el mundo no le da importancia y lo tienen como algo obvio y no es tan acertado me parece.
pylorca is offline   Reply With Quote
Old 02-08-2010, 12:45 PM   #13
ViejoAprendiz
Human being with feelings
 
ViejoAprendiz's Avatar
 
Join Date: Feb 2010
Location: Barcelona, España
Posts: 1
Default

Hola, me gustaría comenzar mi contribución a este foro aclarando este tema, porque todavía no sé hacer practicamente nada con el REAPER xD.

Quote:
Originally Posted by pylorca View Post
r = m * b^e

r seria el numero, m la mantisa y b seria 2 (porque es binario) y e seria la cantidad de bits...
Como ya se ha dicho los número en coma flotante se expresan exponencialmente, con la mantisa multiplicada por 2 (porque los ordenadores son "binarios") y elevada al exponente. Pero faltan unos cuantos datos para completar/corregir la explicación.

1) Los 32 bits se dividen en 8 para el exponente (e) y 24 para la mantisa. Uno de los bits de la mantisa es el signo (negativo o positivo) según el estándar utilizado.

2) Por lo tanto, un coma flotante de 32 bits puede representar sólo con la mantisa la misma cantidad de números diferentes que un entero de 24 bits. Si le sumamos la variedad de exponentes (8 bits, 256 posibilidades, según el estándar entre -127 y 128) tenemos que tiene más precisión porque puede representar una cantidad mucho mayor de números diferentes.

3) Como estamos hablando de audio, lo único que importa es la cantidad de números diferentes que se pueden representar, ya que el máximo y el mínimo siempre se van a traducir a "máximo" y "mínimo", o si lo preferís "hasta donde hace clipping por arriba" y "hasta donde hace clipping por abajo".

En cuanto a la conversión 32 punto flotante - 24 bits la verdad es que no sé como funciona en el tema software de audio, pero yo no me preocuparía, ya que como dice DerMetzgermeister a partir de 24 bits ni el más delicado oído humano puede notar la diferencia. Lo que es seguro es que al pasar de 24 a 32 coma flotante no se pierde precisión. Si escoges un exponente fijo adecuado la conversión podría ser directamente pasar los 24 bits a la mantisa del 32 coma flotante (recordemos que la mantisa tiene 24 bits). Quizá por eso alguien ha dicho que la conversión es directa, pero ojo que los 8 bits asignados al exponente cuentan, aunque fijemos su valor. Si dejamos el exponente a cero todos los valores saldrían uno, porque cualquier número elevado a cero es uno.

Todo esto hablando de conversión, otra cosa es la manipulación de la señal que hacen los secuenciadores, plugins, ... Ahí sí que cuanto más bits mejor, porque igual cogen una señal débil y la amplifican 100 veces y entonces sí que importa una mayor precisión, por eso internamente el REAPER trabaja a 64 bits, y creo que la mayoría de secuenciadores igual.

Espero que este tocho ayude, jeje.

¡Saludos a todos!

Last edited by ViejoAprendiz; 02-09-2010 at 03:08 AM.
ViejoAprendiz is offline   Reply With Quote
Old 03-26-2010, 09:57 AM   #14
rafa1981
Human being with feelings
 
Join Date: Feb 2008
Posts: 188
Default

Quote:
Originally Posted by ViejoAprendiz View Post
2) Por lo tanto, un coma flotante de 32 bits puede representar sólo con la mantisa la misma cantidad de números diferentes que un entero de 24 bits. Si le sumamos la variedad de exponentes (8 bits, 256 posibilidades, según el estándar entre -127 y 128) tenemos que tiene más precisión porque puede representar una cantidad mucho mayor de números diferentes.
El siguiente párrafo que escribiré lo desmentiré parcialmente al final, pero bueno, me gustaría comentar unas cosas del quote para ayudaros a entender más el punto flotante.

Primero me gustaría comentar que en este caso que hablamos ambos formatos tienen exactamente la MISMA precisión, ya que cualquier valor que represente ese punto flotante se puede representar con un equivalente en aritmética de punto fijo de 24, pero una vez situada la coma en el punto fijo el flotante puede pivotarla y el fijo como la palabra bien dice no, por lo que lo que gana el float respecto a su homólogo de punto fijo de la misma profundidad de bit es rango dinámico por poder pivotar la coma, pero a costa de perder precisión , dicho de otra manera, un punto fijo acumula menos error después de sucesivas operaciones aritméticas que su homólogo en punto flotante.

Por ejemplo, en Visual Studio (que es lo que tengo ahora mano, pero seguramente en gcc sea igual), y con parametros por defecto, al asignarle a un float el valor 2147483599, perfectamente representable en un entero de punto fijo escalado a la unidad (lo que se dice un int a pelo), este queda representado como 2.1474835 e9, el flotante tiene más rango dinámico pero ha sacrificado precisión, en este caso (extremo)dos dígitos más redondeo mal hecho.

Luego está el detalle de que nadie pone un x86 a deentrelazar registros de 24 bits alineados a 3 bytes por razones de rendimiento, ese formato de 24 bit todos sabemos que existen a nivel hardware en los DAC, dentro del x86 no, por lo que tampoco es un caso real compararlos, el DAW va a convertir esos flotantes a fijos de la misma profundidad si o si (no a 24), seguramente hasta el propio driver de la tarjeta reciba valores de 32 normalizados y ya ella se encarga de darle el hachazo.

Y para acabar de completar, una última cosa acerca del punto flotante (IEE754), físicamente está representado como habeis dicho, pero hay más propiedades importantes, una relacionada con la normalización, y es que en realidad, al punto flotante hay que sumarle 1bit virtual en la mantissa, quedando el float de 32 como:

- 1 bit de signo.
- 8 bits de exponente.
- 23 + 1 bits de mantissa.

Esto es debido a que en el punto flotante(IEEE754) siempre se presupone que hay un bit virtual puesto a 1 a la izquierda del MSB(bit 23) de la mantisa,
quién tenga tiempo para comprobarlo, puede observar como todos los valores base-2 (0.25,0.5,1,2,4,8,16,32...) llevan toda la mantisa a 0, según la fórmula puesta arriba deberían de estar representando a un 0 multiplicado por un exponente, o sea "0 x algo en el exp = 0", pero no cumple la fórmula.

Esto es debido a como se hace la normalización del punto flotante, cuando lo diseñaron vieron que para aprovechar toda la precisión que la mantissa puede ofrecer, el bit más significativo ha de ser el primer bit puesto a uno, para hacer esto se va decrementando el exponente y subiendolo de posición hasta que el primer bit a uno llegue a ser el MSB, como vieron que ese 1 siempre estaba ahí en esa posición (excepto para el 0), pués decidieron quitar el MSB a 1 y hacerlo implícito, ganando 1 bit extra en la mantissa para representar valores.

Derivado de esto, ya no se podría representar el valor 0 a través de la mantissa, es por ese motivo que se hace a través del exponente, se le asigna un exponente especial y listos, el (-127), o sea que 0x00000000 = +0.f y 0x80000000 = -0.f.

Dicho esto, dije antes que desmentiría mi primera afirmación, no quería meter varios conceptos de golpe para no liar la troca tanto, pero para alojar un float en un punto fijo, signo incluído hacen falta 25 bits por lo que no tienen la misma precisión, pero por este motivo, no por el que se explicaba en el quote.
rafa1981 is offline   Reply With Quote
Old 03-26-2010, 07:23 PM   #15
JOE SA SA
Human being with feelings
 
JOE SA SA's Avatar
 
Join Date: May 2009
Location: GUADALAJARA, MEXICO
Posts: 557
Default

Analizando las frecuencias y señales al final de renderizado, he perfilado el audio a 470 hz con resolucion a 32, 24, 16 y 8 bits, aplicando un filtro de referencia Reflex las frecuencias de transición se conservaron dando un agregado como sigue: de 32 a 24 bits se registra una frecuencia que va de los 19,690 hz a 24,200 hz residual por tanto casi inaudible al caer a umbrales inferiores a -98 Dbs. De 24 a 16 bits las frecuencias van de 16,810 a 19,566 hz por debajo de -76 Dbs. De 24 a 8 bits las frecuencias llegan a 13,110 a 24,890 hz con nivel de -58 Dbs. Entiendase esto como el ruido perfido insertado para suavizar la transicion de profundidad en bits "relativos" a sus niveles actualizados en el ratio de sampleo de la señal.
En pocas palabras, habría que ser un gato para escuchar las afectaciones que ejerce el dither a profundidades amplias y ser un audiofilo con oido extremadamente educado para percibir el ruido en una transicion de 24 a 8 bits de profundidad y quien sabe aun.
Tarea! Graben la fundamental (470 hz occidental) aproximadamente, no tiene que ser exacta a 32, 24 y 16 bits a 44100 de sampleo, apliquen dither en la transición de 32 a 16 bits y luego de nuevo pero sin dither, en seguida, traten de escuchar depurando el audio con su mejor ecualizador en frecuencias por arriba de los 11,000 hz y aumenten el nivel con una buena dosis de Drive, como este último agrega harmonicos a la señal y mas si estas son de alta frecuencia será mas notorio para ustedes la diferencia entre "con dither y sin dither" y el perfil de ruido usado ó resultante.
Pero, ¿Porque con Drive? se preguntarán algunos, bien, el problema es que si aumentan el nivel de volumen de sus equipos, estos entregan ruido de hardware así como el cableado mismo mimetizando, como lo hace las frecuencias altas de la señal de tu tema, de suerte que no sabrías si es ruido de hardware o el perfil de señal residual, mas que usar un espectrometro incluido en muchos DAWs, resultaría mas preciso usar un osciloscopio en modalidad Z histeresis, pero es poco probable que se tenga uno en la cocina así que recurre al Driver.
De esta manera quiza se despeje ese cosquilleo de si: ¿Y si afecta notoriamente el usar plugs que trabajan a... ó, si uso muestras que estan a X bits ...? Veran que las afectaciones son a mediciones "micrometricas" cuando el mas agudo de oido es por decirlo así: "centimetrico".
A dormir tranquilos que la gracía sigue estando en sus ocurrencias a la hora de hacer musica.

SALUDOS Y SALIDOS AL MUNDO.
__________________
Links caidos? ve a 1joesasa desde tu navegador favorito y ve los videos hospedados en youtube y desde ahora solo en Daylymotion.
JOE SA SA
JOE SA SA is offline   Reply With Quote
Old 03-29-2010, 05:52 AM   #16
rafa1981
Human being with feelings
 
Join Date: Feb 2008
Posts: 188
Default

Tienes toda la razón del mundo mundial Joe, lo que comentaba antes más que para músicos iba dirigido a programadores de plugins, donde si que se nota como el tipo de datos comienza a acumular errores al cabo de un tiempo.

Con productos ya acabados, o sea, a nivel de usuario yo casi recomendaría trabajar/exportar las pistas de un proyecto al tipo de datos en que trabaje el motor de audio, si el motor es punto flotante en punto flotante y si es entero en enteros, seguramente se note algo de cambio de velocidad con un montón de pistas. Si no le supone un problema a la velocidad del disco duro, pués también a la misma profundidad de bit.
rafa1981 is offline   Reply With Quote
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -7. The time now is 05:25 AM.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2024, vBulletin Solutions Inc.