Capítulo 1. Curso de introducción

Parte 9: Sonidos

Contenido:


El ordenador emite su sonido a través del altavoz que tiene incorporado. Si está utilizando la unidad modulador/fuente de alimentación MP2 y un televisor doméstico, baje el mando de volumen del televisor al mínimo.

El nivel de sonido se ajusta con el mando VOLUMEN que hay en el panel derecho del ordenador. También es posible enviar el sonido a un amplificador externo, por medio de la salida marcada con ESTEREO en el ordenador. De esta forma se puede oír el sonido en estereofonía, utilizando los altavoces o los auriculares de un equipo de alta fidelidad. En la parte 2 de este Curso de introducción se explica cómo tomar las señales de la salida ESTEREO del ordenador.

La instrucción SOUND

La instrucción SOUND tiene siete parámetros. Los dos primeros son imprescindibles, mientras que los restantes son opcionales. La forma de la instrucción es la siguiente:

SOUND <situación de canales>,<periodo de tono>,<duración>,<volumen>,
<envolvente de volumen>,<envolvente de tono>,<periodo de ruido>

Parece complicada a primera vista, pero veremos que en realidad no lo es tanto cuando hayamos analizado el significado de todos los parámetros. Así pues, estudiemos los parámetros uno por uno.

Situación de los canales

Para no complicar las cosas, por ahora nos limitaremos a considerar este parámetro como simple selector de canales. Hay tres canales de sonido; de momento sólo utilizaremos el número 1.

Periodo de tono

El periodo de tono es la forma técnica de especificar el tono del sonido; en otras palabras, de identificar la nota (DO, RE, MI, FA, etc.). Cada nota tiene un número de identificación, que es el periodo de tono. Si consulta el capítulo Para su referencia, comprobará que la nota DO media tiene un periodo de tono de 239.

Reinicialice el ordenador con [CONTROL] [MAYS] [ESC] y luego escriba:

10 sound 1,239
run

Acaba de oír la nota DO media, que ha sonado durante 0.2 segundos. ¿No ha oído nada? Suba el control de volumen del ordenador y vuelva a ejecutar el programa.

Duración

Este parámetro especifica la duración del sonido. Las unidades son de centésimas de segundo (0.01 s). Si no se especifica duración, el ordenador toma el valor implícito para este parámetro, que es 20; por eso la nota que acaba de oír ha durado 0.01 x 20=0.2 segundos.

Si queremos que la nota dure 1 segundo, el valor del parámetro tendrá que ser 100; para dos segundos, 200; etc. Escriba lo siguiente:

10 sound 1,239,200
run

Acaba de oír la nota DO media con duración de 2 segundos.

Volumen

Este parámetro especifica el volumen de la nota. El margen de valores va de 0 a 15. El "volumen" 0 es el mínimo; el 15 es el máximo. Si no se especifica ningún valor, el ordenador toma el implícito, que es 12. Escriba lo siguiente:

10 sound 1,239,200,5
run

Fíjese en el volumen de este sonido y compárelo con el siguiente:

10 sound 1,239,200,15
run

Como puede observar, es mucho más intenso que el anterior.

Envolvente de volumen

Se puede hacer que el volumen de una nota no sea constante, sino que varíe con el tiempo mientras la nota está sonando. Para especificar la forma de variación del volumen en función del tiempo necesitamos otra instrucción: ENV. De hecho, podemos definir varias envolventes de volumen distintas, cada una de las cuales tendrá su número de referencia. Así, si hemos definido la envolvente de volumen número 1, podemos utilizarla poniendo en la instrucción SOUND el número 1 como parámetro de envolvente de volumen. En seguida explicaremos como se definen las envolventes de volumen.

Envolvente de tono

Se puede hacer que el tono de una nota no sea constante, sino que varíe con el tiempo mientras la nota está sonando. Para especificar la forma de variación del tono en función del tiempo necesitamos otra instrucción: ENT. De hecho, podemos definir varias envolventes de tono distintas, cada una de las cuales tendrá su número de referencia. Así, si hemos definido la envolvente de tono número 1, podemos utilizarla poniendo en la instrucción SOUND el número 1 como parámetro de envolvente de tono. En seguida explicaremos como se definen las envolventes de tono.

Ruido

El periodo de ruido es el último parámetro de la instrucción SOUND. Las características del ruido se pueden variar eligiendo para este parámetro un valor comprendido entre 1 y 31. Ponga el valor 2 en la instrucción SOUND y escuche el efecto. Ponga luego el número 27 y observe la diferencia. Escriba:

10 sound 1,239,200,15,,,2

En esta instrucción hemos dejado en blanco dos parámetros (,,,) porque aún no hemos creado ninguna envolvente de volumen ni de tono.

Definición de una envolvente de volumen

La instrucción que define envolventes de volumen es ENV. En su versión más sencilla, esta instrucción lleva 4 parámetros. Su forma es la siguiente:

ENV <número de envolvente>,<número de escalones>,<altura de cada escalón>,<duración de cada escalón>

Estudiemos los parámetros uno por uno.

Número de la envolvente (de ENV)

Es el número de referencia (entre 0 y 15) por el que la citaremos en la instrucción SOUND.

Número de escalones (de ENV)

Este parámetro especifica en cuántas etapas queremos que la nota evolucione antes de terminar. Por ejemplo, si la nota ha de durar 10 segundos, podemos dividirla en 10 etapas de 1 segundo cada una; en tal caso, el parámetro "número de escalones" tendría el valor 10.

El margen de este parámetro es de 0 a 127.

Altura de cada escalón

En cada etapa, el volumen puede variar con respecto al nivel anterior en un número de unidades comprendido en 0 y 15. Estos 16 niveles de sonido son los mismos que se definen en la instrucción SOUND. Sin embargo, el margen del parámetro "altura de escalón" es de -128 a +127; el nivel del volumen vuelve a 0 cada vez que sobrepasa el 15.

Duración de cada escalón (de ENV)

Este parámetro especifica la duración de cada escalón en unidades de centésimas de segundo. El margen de valores es de 0 a 255; esto significa que la duración máxima de cada escalón es de 2.56 segundos (el 0 se considera como 256).

Por consiguiente, el producto del parámetro "número de escalones" por el parámetro "duración de cada escalón" no debería ser mayor que el parámetro "duración" especificado en la instrucción SOUND. De lo contrario, el sonido terminará antes de que se hayan completado todos los escalones de la envolvente. (En ese caso el ordenador ignora el resto del contenido de la envolvente.)

Análogamente, si la duración especificada en SOUND es mayor que la impuesta por el producto de "número de escalones" por "duración de cada escalón", la nota continuará sonando aunque se hayan terminado los escalones de la envolvente de volumen, y lo hará al nivel del último escalón de la envolvente.

Para practicar con las envolventes de volumen, pruebe el siguiente programa:

10 env 1,10,1,100
20 sound 1,142,1000,1,1 
run 

La línea 20 especifica un sonido con número de tono igual a 142 (LA internacional), duración de 10 segundos, volumen inicial igual a 1 y envolvente de tono número 1, la cual consiste en 10 escalones de altura 1 y duración 1 segundo (100 x 0.01).

Pruebe las siguientes formas de la línea 10 y trate de escuchar el efecto de las diferentes envolventes de volumen:

10 env 1,100,1,10
10 env 1,100,2,10
10 env 1,100,4,10
10 env 1,50,20,20
10 env 1,50,2,20
10 env 1,50,15,30

Finalmente, pruebe la siguiente:

10 env 1,50,2,10

Observe que el volumen permanece constante durante la segunda mitad de la nota. Esto ocurre por que el número de escalones es 50 y la duración de cada uno de ellos es 0.1 s, con lo que la duración total de la envolvente es de solamente 5 segundos, mientras que en la instrucción SOUND se especifica una duración de 10 segundos. .

Haga usted otras pruebas y trate de generar sonidos diferentes.

Si quiere crear envolventes más complejas, puede repetir los tres últimos parámetros de la instrucción ENV para definir otras "secciones" de la envolvente (hasta un máximo de 4 secciones).

Definición de una envolvente de tono

La instrucción que define envolventes de tono es ENT. En su versión más sencilla, esta instrucción lleva 4 parámetros. Su forma es la siguiente:

ENT <número de envolvente>,<número de escalones>,<altura de cada escalón>,
<duración de cada escalón>

Como siempre, estudiemos los parámetros uno por uno.

Número de la envolvente (de ENT)

Es el número de referencia (entre 0 y 15) por el que la citaremos en la instrucción SOUND.

Número de escalones (de ENT)

Este parámetro especifica en cuántas etapas queremos que la nota evolucione antes de terminar. Por ejemplo, si la nota ha de durar 10 segundos, podemos dividirla en 10 etapas de 1 segundo cada una; en tal caso, el parámetro "número de escalones" tendría el valor 10.

El margen de este parámetro es de 0 a 239.

Periodo de tono de cada escalón

En cada etapa, el tono puede variar con respecto al de la anterior en un número de unidades comprendido entre -128 y +127. Las variaciones negativas representan aumento del tono (tono más agudo); las variaciones positivas reducen el tono (tono más grave). El valor mínimo del período de tono es 0. Téngalo en cuenta cuando programe envolventes de tono. En el capítulo Para su referencia se da la lista completa de los periodos de tono.

Duración de cada escalón (de ENT)

Este parámetro especifica la duración de cada escalón en unidades de centésimas de segundo. El margen de valores es de 0 a 255; esto significa que la duración máxima de cada escalón es de 2.56 segundos (el 0 se considera como 256).

Por consiguiente, el producto del parámetro "número de escalones" por el parámetro "duración de cada escalón" no debería ser mayor que el parámetro duración especificado en la instrucción SOUND. De lo contrario, el sonido terminará antes de que se hayan completa do todos los escalones de la envolvente. (En ese caso el ordenador ignora el resto del contenido de la envolvente.)

Análogamente, si la duración especificada en SOUND es mayor que la impuesta por el producto de "número de escalones" por "duración de cada escalón", la nota continuará sonando aunque se hayan terminado los escalones de la envolvente de tono, y lo hará con el tono correspondiente al de la última etapa de la envolvente.

Para practicar con las envolventes de tono, pruebe el siguiente programa:

10 ent 1,100,2,2
20 sound 1,142,200,15,,1
run

La línea 20 especifica un sonido con número de tono igual a 142 (LA internacional), duración de 2 segundos, volumen inicial igual a 15 (el máximo), sin envolvente de volumen (parámetro en blanco ,,) y con envolvente de tono número 1.

En la línea 10 se define la envolvente de tono, la cual consiste en 100 escalones de altura 2 (reducción del tono) y duración 0.02 segundos (2x0.01).

Pruebe las siguientes formas de la línea 10 y trate de escuchar el efecto de las diferentes envolventes de tono:

10 ent 1,100,-2,2
10 ent 1,10,4,20
10 ent 1,10,-4,20

Cambie ahora la instrucción sound y la envolvente de tono escribiendo:

10 ent 1,2,17,70
20 sound 1,71,140,15,,1
30 goto 10
run

Pulse [ESC] dos veces para detener el programa.

Se puede combinar las instrucciones ENV, ENT y SOUND para crear sonidos más complejos. Empiece con el siguiente programa:

10 env 1,100,1,3
20 ent 1,100,5,3
30 sound 1,142,300,1,1,1
run

Cambie la línea 20 por la siguiente:

20 ent 1,100,-2,3
run

Y finalmente pruebe el siguiente programa:

10 env 1,100,2,2
20 ent 1,100,-2,2
30 sound 1,142,200,1,1,1
run

Si quiere crear envolventes más complejas, puede repetir los tres últimos parámetros de la instrucción ENT para definir otras "secciones" de la envolvente (hasta un máximo de 4 secciones).

Haga usted mismo otras pruebas. Por ejemplo, incluya ruido en la instrucción SOUND y añada más secciones a las envolventes de volumen y de tono.

En el capítulo Lista completa de las palabras clave del BASIC de AMSTRAD explicaremos con todo detalle las diversas instrucciones de sonido. Si le interesan los aspectos más melódicos del sonido, consulte la sección El sonido de la música del capítulo titulado Cuando usted guste.