RE: [eside-ghost] Normalización de sonido
Fernando de Urien y Muñiz
zefe en rigel.deusto.es
Jue Mar 2 09:49:15 CET 2006
Iepa!
Me temo que eso que quieres es un poco más complicado de lo que piensas.
Lo que tú vas a medir de la forma que pretendes es un pico de señal.
A ti te interesa un nivel "medio" (lo pongo entre comillas porque el calculo
de valor medio no te vale) de señal durante un tiempo determinado.
Lo digo porque si lo haces para normalizar cada muestra de señal (el sleep
de 5 es tu intervalo de muestra)... jejeje... si normalizas todas... todas
te van a quedar igual... y por tanto lo que vas a hacer es descojonar la
canción y volver loco al que la oye.
Te pongo un ejemplo aplicado a los discos que oyes en casa...
¿por qué cada disco tiene un volumen diferente? ¿no se supone que deberían
estar normalizados?
Sip, están normalizados de forma que la señal de pico máxima sea 0dB y así
no se distorsione la entrada del amplificador, Lo que pasa es que están
comprimidos (y no con zip ;-) ) de forma distinta lo que hace que el
volumen aparente sea diferente.
Hay frecuencias más bajas que otras, cuando el vocalista canta el nivel de
señal sube... en fin, muchos muchos muchos rollos.
No sé si te he liado más o te he despejado alguna duda, si eso luego me
pongo un ratito y te lo intento explicar mejor.
Un saludo,
P.D. Yo tocando los cojones y sin dar soluciones!! Pues no! Jejeje... una
que se me ocurre es... Medir el RMS de la canción antes de empezar a
reproducirla y adaptar el volumen de la salida en función del valor rms que
te haya salido.
> Hablando de ideas a lo loco, el otro día se me ocurrió que igual se podría
> usar un microfono al lado de los altavoces para normalizar el volumen y
> que no sobrepase cierto nivel por la noche (automatizadamente, claro).
>
> Es decir, sería hacer ese cat /dev/audio > grabacion.raw en un
> bucle, tal que...
>
> while true; do
> cat /dev/audio > grabacion.raw &
> sleep 5
> killall cat (everytime you mas^H^H^Hrecord audio, god kills all
> kitten... weno, la idea es matar el proceso q hemos dejao en segundo
> plano, evidentemente)
> if [ volumen grabacion.raw >= threshold ]; then
> aumix -w-10 (o algo un poco más inteligente, usando la
> diferencia de
> volumenes para saber cuanto se debe bajar/subir)
> fi
> done
>
> El problema que tengo sería ese "IF" q comprueba el volumen medio de la
> muestra de sonido. Alguien tiene ideas de cómo hacerlo? Alguna utilidad o
> algo?
>
> </idea_loca>
>
> --
> Saludos,
> STenyaK
>
> _______________________________________________
> Site: http://1ksurvivor.homeip.net <1kSurvivor>
> http://motorsport-sim.org <Motorsport>
> http://kwh.iespana.es <KuantikalWareHouse>
> Mail: stenyak AT gmx DOT net
Más información sobre la lista de distribución eside-ghost