Skip to content

06. La envolvente de volumen

sevioptero edited this page Jan 15, 2021 · 1 revision

6. La envolvente de volumen

La instrucción de envolvente de volumen (ENV) permite al usuario controlar la variación del volumen con el tiempo para un sonido dado. Se la utiliza para modificar el efecto de la instrucción SOUND. Al igual que ésta, tiene una serie de parámetros que la hacen parecer complicada a primera vista. Pero, dado que muchos de ellos son análogos entre sí, no es tanto lo que hay que explicar.

La instrucción tiene la forma siguiente:

ENV n,P1,Q1,R1,P2,Q2,R2,P3,Q3,R3,P4,Q4,R4,P5,Q5,R5

¡No se asuste! En realidad, los únicos parámetros que tenemos que entender son los cuatro primeros. Pero veamos antes qué forma tiene el sonido.

LA FORMA DEL SONIDO

Si no nos organizamos, la instrucción ENV puede hacernos perder mucho tiempo. Puesto que podemos jugar con 15 parámetros, las combinaciones posibles son tantas que no podemos hacer pruebas al azar. Vale la pena, por lo tanto, dedicar unos minutos a analizar el sonido que queremos crear.

Todos los sonidos pueden ser caracterizados por la gráfica de su amplitud en función del tiempo (véase la figura 6.1). Cada sonido tiene una forma característica, que es la que tenemos que imitar al escribir la instrucción ENV. Teclee el programa 6.1 y pruébelo.

Programa 6.1

10 ENV 1,10,4,3,5,-3,20,1,0,20,5,3,10,10,-3,30
20 SOUND 1,478,0,0,1,0,0

El sonido que acaba de escuchar está controlado por la instrucción ENV. La línea 20 define el tono, pero la duración especificada es 0, y esto indica a la máquina que debe consultar la instrucción ENV para averiguar la duración y otras características del sonido. También se ha especificado 0 como número de volumen, pues éste está descrito con más detalle en ENV. El parámetro EV es 1, para indicar que la envolvente de volumen que se debe utilizar es la número 1, que es la que hemos definido en la línea 10. Analizamos la forma de la figura 6.1.

Fig. 6.1 Ejemplo de envolvente de volumen.

La forma está dividida en cinco secciones, cada una de las cuales se caracteriza por tres parámetros. En la figura 6.2 se muestra la relación entre las cinco secciones y los correspondientes parámetros de ENV.

Los tres parámetros de cada sección son los siguientes: Pn (donde n es el número de la sección), que es el número de escalones; Qn, que es la altura de cada escalón; y Rn, que es la duración de cada escalón. En toda instrucción ENV hay que especificar al menos una sección.

El número de escalones es un entero comprendido entre 0 y 127. Cada uno de los escalones es de duración fija, caracterizado por Rn, que se expresa en unidades de centésimas de segundo; el margen de Rn es de 0 a 255. Para el parámetro Qn, altura de los escalones, el margen es de -128 a +127; un número negativo indicará que la amplitud es decreciente.

Fig. 6.2 Las cinco secciones de la envolvente de volumen.

La envolvente de la figura 6.1 dura 5 segundos. En efecto, si multiplicamos el número de escalones por la duración de cada uno de ellos y sumamos los resultados para las cinco secciones obtenemos:

(3*10)+(20*5)+(20*1)+(10*5)+(30*10)=500

Como las unidades son centésimas de segundo, 500 equivaldrá a 5 segundos.

Una vez definida una envolvente, el conjunto de parámetros queda almacenado en el generador de sonido, en espera de que más tarde utilicemos la envolvente. Si se quiere cancelar el efecto de una envolvente en las instrucciones SOUND, se la debe redefinir sin especificar la forma de las secciones, es decir, de la siguiente manera:

ENV 1

con lo que la envolvente queda desactivada.

ENV EN LA PRÁCTICA

A pesar de que he dicho que es necesario estudiar la forma del sonido que se quiere generar antes de ponerse a escribir la instrucción ENV, voy a hacer una excepción. Para darle una idea de los efectos de los parámetros de ENV, el programa 6.2 le permite definirlos con facilidad; sólo hemos incluido una sección.

Programa 6.2

10 CLS
20 PRINT"Elija numero de saltos (0-127)"
30 INPUT numsaltos
40 PRINT"Elija tamano del salto (-128 a +127)"
50 INPUT tamsalto
60 PRINT"Elija tiempo de pausa (0-255)"
70 INPUT tiempopausa
80 ENV 1,numsaltos,tamsalto,tiempopausa
90 SOUND 1,240,15,15,1,1,0
100 ENV 1
110 PRINT"Pulse una tecla para continuar"
120 X$=INKEY$:IF x$="" THEN 120
130 GOTO 10

Experimente un poco con estos números. Siempre es posible que descubra algún sonido interesante.

Fig. 6.3

INSTRUMENTOS

Es probable que el lector pretenda imitar los sonidos de los instrumentos musicales. Dentro de ciertos límites, esto es posible; pero no olvide que estamos trabajando con unos circuitos electrónicos que tienen limitaciones inevitables. Siempre que alguien diseña una envolvente que cree que suena como un violín, hay otro que piensa que en realidad suena como un clarinete. Por esta razón no voy a dar una lista de envolventes predefinidas, sino solamente sugerencias para que usted las diseñe a su gusto.

En la figura 6.3 se indica la forma de onda de las notas generadas por diversos instrumentos musicales. Trate de imitar la forma de la curva al escribir la instrucción ENV y «afínela» hasta que suene a su gusto.

El ajuste más fino del sonido puede requerir que controle también la forma de variar la frecuencia de una nota a lo largo de su ejecución. Para ello sirve la instrucción ENT, que explicaremos en el capítulo siguiente.

Clone this wiki locally