Existen muchas maneras de describir un sonido físicamente. Una de las más comunes es el nivel de intensidad sonora (SIL). Describe la cantidad de potencia en una superficie determinada, por esto su unidad son los Watts por metro cuadrado (). El rango auditivo del ser humano va de aproximadamente en el umbral de audición hasta en el umbral del dolor. Para ordenar este inmenso rango y para facilitar la medición de la intensidad de un sonido en base a su relación con el otro se utiliza una escala logarítmica. La unidad Bel describe la relación de una intensidad I a una intensidad de referencia I0 tal como se indica a continuación:
Nivel de Intensidad Sonora en Bel
Si, por ejemplo, la relación es 10, esto es igual a un Bel. Si la relación es 100, 2 Bel.
Para sonidos del mundo real, tiene sentido tomar como valor de referencia al valor del umbral de audición, que fuera establecido como para una frecuencia de 1000 Hertz. Por lo tanto, el rango auditivo del ser humano cubre aproximadamente 12 Bel. Comúnmente un Bel suele subdivide en 10 decibeles, por lo que la formula más usual para medir la intensidad de un sonido es:
Nivel de intensidad sonora (SIL) en decibeles (dB) con
Mientras que el nivel de intensidad sonora es útil para describir la forma en que funciona la audición humana, la medición del sonido está más estrechamente vinculada a las desviaciones de presión del sonido. Las ondas sonoras comprimen y expanden las partículas del aire y en consecuencia aumentan y disminuyen la presión atmosférica local. Estas desviaciones se miden y se transforman utilizando un micrófono. Entonces surge la pregunta: ¿cuál es la relación entre las desviaciones de presión sonora y la intensidad del sonido? La respuesta es: los cambios en la intensidad de un sonido son proporcionales al cuadrado de los cambios de presión sonora . Visto como fórmula:
Relación entre la Intensidad del Sonido y la Presión Sonora.
Tomemos un ejemplo para ver de qué estamos hablando. La presión sonora en el umbral de la audición puede ser aproximada en . Este es el valor de referencia del Nivel de Presión Sonora(SPL). Si tenemos un valor de , la relación de la intensidad sonora correspondiente puede ser calculada como:
Por lo tanto un factor de 10 en una relación de presión genera un factor de 100 en la relación de intensidad. En general, la escala de dB para la presión P en relación a la presión P0 es:
Nivel de presión sonora (SPL) en decibeles (dB) con
Trabajar con audio digital significa trabajar con amplitudes. Cualquier archivo de sonido es una secuencia de amplitudes. Lo que Csound genera y escribe, ya sea al DAC en tiempo real o a un archivo de sonido, no es sino una secuencia de amplitudes. Ya que las amplitudes están directamente relacionadas con las desviaciones en la presión sonora, todas las relaciones entre intensidad y presión sonora pueden ser convertidas a relaciones entre intensidad sonora y amplitudes:
Relación entre intensidad y amplitud.
Escala de amplitudes en Decibeles (dB) con una amplitud relacionada a otra amplitud .
Si se conduce un oscilador con una amplitud de 1, y otro oscilador con una amplitud de 0.5 y se quiere saber la diferencia en dB, es posible calcular esto de la siguiente manera:
Conviene siempre recordar que cuando se dobla la amplitud el cambio es de +6 dB y, en cambio, cuando se reduce a la mitad la amplitud el cambio es de -6 dB.
Como mencionábamos en la sección anterior, cualquier escala en dB -sea para intensidades, presiones o amplitudes- es sólo una manera de describir una relación. Para tener alguna clase de medida cuantitativa primero habrá que conocer el valor de referencia al que llamaremos "0 dB". Para los sonidos del mundo real, tiene sentido establecer este nivel en el umbral de audición. Esto se hace, como vimos antes, al establecer el SIL a y el SPL a .
Cuando se trabaja con sonido digital en un ordenador, esta forma de definir 0 dB no tiene ningún sentido. El volumen del sonido producido en el equipo dependerá en última instancia de la amplificación y los altavoces, y el nivel de amplitud establecido en el editor de audio o en Csound solamente aplicarán un control al nivel de sonido adicional, no al nivel absoluto. Sin embargo, existe un nivel de referencia racional para las amplitudes. En un sistema digital, hay un límite estricto para el número máximo que se puede almacenar como amplitud. Este nivel máximo posible se utiliza normalmente como el punto de referencia para 0 dB.
Cada programa conecta esta amplitud máxima posible con un número. Por lo general, es '1', que es una buena opción, porque así sabremos que todo lo que está por encima de 1 está saturando, y además permite una relación muy útil para los valores más bajos. Pero en realidad este valor no es más que una opción arbitraria, y Csound se puede usar cualquier valor que uno quiera a través del código operativo 0dbfs. Por lo general, se debe utilizar esta declaración en el encabezado de la orquesta:
0dbfs = 1
Esto quiere decir: "Establézcase el nivel para 0 dB escala completa en 1 como valor de referencia." Tenga en cuenta que por razones históricas el valor predeterminado en Csound no es 1, sino 32768. Por lo que debe tener la declaración 0dBFS = 1 en el encabezado si se desea usar la convención de amplitud utilizada por la mayoría de los entornos de programación de audio modernos.
Ahora consideraremos algunas consecuencias prácticas de lo que hemos venido discutiendo hasta ahora. Un punto importante es que para lograr cambios en los niveles de intensidad perceptiblemente suaves, no se debe usar para las amplitudes una simple transición lineal, sino una transición lineal del equivalente en dB. El siguiente ejemplo muestra un aumento lineal de las amplitudes de 0 a 1, y luego un aumento lineal de los dB de -80 a 0 dB, ambos a lo largo de 10 segundos.
EXAMPLE 01C01_db_vs_linear.csd
<CsoundSynthesizer> <CsOptions> -odac </CsOptions> <CsInstruments> ;ejemplo por joachim heintz sr = 44100 ksmps = 32 nchnls = 2 0dbfs = 1 instr 1 ;crecimiento de la amplitud lineal kamp line 0, p3, 1 ;crecimiento de la amplitud 0 -> 1 asig oscils 1, 1000, 0 ;sinusoide de 1000 Hz aout = asig * kamp outs aout, aout endin instr 2 ;crecimiento lineal en dB kdb line -80, p3, 0 ;crecimiento en dB -80 -> 0 asig oscils 1, 1000, 0 ;sinusoide de 1000Hz kamp = ampdb(kdb) ;transformación db -> amp aout = asig * kamp outs aout, aout endin </CsInstruments> <CsScore> i 1 0 10 i 2 11 10 </CsScore> </CsoundSynthesizer>
La primera nota, que emplea un crecimiento lineal de la amplitud, se percibe como un aumento rápido en la intensidad con la tasa de crecimiento desacelerándose rápidamente. La segunda nota, que emplea un aumento lineal en dB, se percibe como un aumento más parejo de la intensidad.
La intensidad del sonido depende de muchos factores. Uno de los más importantes es la media cuadrática de las amplitudes en un cierto lapso de tiempo. Esto se conoce como el valor cuadrático medio o valor eficaz (RMS). Para calcularlo, hay que (1) calcular las amplitudes cuadradas de un número N de muestras. Luego, (2) dividir el resultado por N para calcular la media. Por último, (3) buscar la raíz cuadrada.
Consideremos un ejemplo sencillo primero y luego veamos la forma de obtener valores RMS dentro de Csound. Para una onda sinusoidal que se compone de 16 muestras, obtendremos estas amplitudes:
Estos son los cuadrados de las amplitudes:
La media de estos valores es:
(0+0.146+0.5+0.854+1+0.854+0.5+0.146+0+0.146+0.5+0.854+1+0.854+0.5+0.146)/16=8/16=0.5
Y el valor RMS es sqrt(0.5) = 0.707
El opcode rms en Csound calcula la potencia RMS para un cierto lapso de tiempo, y suaviza los valores en el tiempo de acuerdo con el parámetro ihp: cuanto más alto es este valor (por defecto, 10 Hz), más rápido responderá esta medición a los cambios, y viceversa. Este opcode puede ser utilizado para implementar un sistema de auto-regulación, en el que el opcode rms evita que el sistema se desbande. Cada vez que el valor eficaz supera un cierto valor, se reduce la cantidad de realimentación. He aquí un ejemplo1 :
EXAMPLE 01C02_rms_feedback_system.csd
<CsoundSynthesizer> <CsOptions> -odac </CsOptions> <CsInstruments> ;ejemplo por Martin Neukom, adaptado por Joachim Heintz sr = 44100 ksmps = 32 nchnls = 2 0dbfs = 1 giSine ftgen 0, 0, 2^10, 10, 1 ;tabla que contiene una sinusoide instr 1 a3 init 0 kamp linseg 0, 1.5, 0.2, 1.5, 0 ;envolvente para una entrada initial asnd poscil kamp, 440, giSine ;entrada inicial if p4 == 1 then ;elegir entre dos sinusoides ... adel1 poscil 0.0523, 0.023, giSine adel2 poscil 0.073, 0.023, giSine,.5 else ;o entre un movimiento aleatorio para las líneas de retardo adel1 randi 0.05, 0.1, 2 adel2 randi 0.08, 0.2, 2 endif a0 delayr 1 ;líneas de retardo de 1 segundo a1 deltapi adel1 + 0.1 ;primera lectura a2 deltapi adel2 + 0.1 ;segunda lectura krms rms a3 ;medición de rms delayw asnd + exp(-krms) * a3 ;realimentación según rms a3 reson -(a1+a2), 3000, 7000, 2 ;calcular a3 aout linen a1/3, 1, p3, 1 ;aplicar aparecimiento progresivo y desvanecimiento outs aout, aout endin </CsInstruments> <CsScore> i 1 0 60 1 ;dos movimientos de sinusoides de retardo con realimentación i 1 61 . 2 ;dos movimientos aleatorios de retardo con realimentacion </CsScore> </CsoundSynthesizer>
El rango auditivo del ser humano va aproximadamente desde los 20 Hz hasta los 20000 Hz, pero dentro de este rango, la audición no es igualmente sensible a la intensidad. La región más sensible es alrededor de los 3000 Hz. Si un sonido está operando en los límites superiores o inferiores con respecto a este rango, necesitará tener mayor intensidad para ser percibido de la misma manera.
Las curvas que muestran sonoridades equivalentes se conocen como "Curvas de Fletcher-Munson" debido al artículo de H. Fletcher y W. A. Munson de 1933. Se ven algo así:
Realice la siguiente prueba. Durante los primeros 5 segundos escuchará un tono de 3000 Hz. Ajuste el nivel de su amplificador al nivel más bajo posible en el que aún pueda oír el tono. A continuación escuchará un tono cuya frecuencia comienza en 20 Hertz y termina en 20000 Hertz, en un lapso de 20 segundos. Trate de mover el control de volumen o atenuador de su amplificador exactamente de tal forma que aún pueda oír algo, pero lo más suave posible. El movimiento de su atenuador debe seguir más o menos a la Curva de Fletcher-Munson más baja: comenzando de manera relativamente alta, después bajando hasta 3000 Hz, y luego hacia arriba de nuevo. Por supuesto, la eficacia de esta prueba también dependerá de la calidad de sus altavoces. Si los altavoces no proporcionan una respuesta de baja frecuencia adecuada, no oirá nada en la región de los graves.
EXAMPLE 01C03_FletcherMunson.csd
<CsoundSynthesizer> <CsOptions> -odac </CsOptions> <CsInstruments> sr = 44100 ksmps = 32 nchnls = 2 0dbfs = 1 giSine ftgen 0, 0, 2^10, 10, 1 ;tabla con una sinusoide instr 1 kfreq expseg p4, p3, p5 printk 1, kfreq ;imprime las frecuencias una vez por segundo asin poscil .2, kfreq, giSine aout linen asin, .01, p3, .01 outs aout, aout endin </CsInstruments> <CsScore> i 1 0 5 1000 1000 i 1 6 20 20 20000 </CsScore> </CsoundSynthesizer>
Es muy importante tener en cuenta a la hora de diseñar los instrumentos que la sonoridad percibida de un sonido depende de su contenido frecuencial. Se debe ser consciente de que la proyección de una onda seno de 30 Hz a una cierta amplitud será percibida de manera diferente a una onda seno de 3000 Hz a igual amplitud; esta última sonará mucho más fuerte.
There has been error in communication with Booktype server. Not sure right now where is the problem.
You should refresh this page.