Skip to content

08. Efectos especiales

sevioptero edited this page Jan 15, 2021 · 1 revision

8. Efectos especiales

El término sonidos que hemos puesto en el título de este libro engloba tanto la música como los ruidos y todos los efectos sonoros. Y, efectivamente, el Amstrad puede generar, además de música, efectos sonoros espectaculares que el lector puede incorporar a sus programas.

El Amstrad puede ser ruidoso como el que más; podemos utilizar sus sonidos en la forma que nos convenga. La primera aplicación que se nos viene a la mente es el diseño de programas de juegos, en los que el sonido puede ser fundamental.

Los juegos de ordenador no serían tan atractivos si no fuera por los ruidos de choques, explosiones y disparos. Dé rienda suelta a su imaginación y pronto estará creando efectos sonoros dignos de la capacidad gráfica de este ordenador.

AVENTURA SONADA

Un viaje por los canales sonoros del tiempo y el espacio

Estamos deslizándonos suavemente por el espacio a hipervelocidad 7.6 cuan do nuestro monitor intergaláctico ultrasensible detecta que se nos acerca una nave enemiga a velocidad tetradimensional. Pulsamos el botón de alerta general y... ... teclee el Programa 8.1.

Programa 8.1

10 ENT 1,80,-4,1
20 SOUND 1,478,50,15,0,1,0
30 GOTO 20

La alerta ha sonado; los tripulantes del Federation Star Amcruiser corren hacia sus puestos de combate, donde quedan a la espera del primer signo de acción hostil. De pronto la nave enemiga desaparece de nuestras pantallas y todo queda tranquilo. Llegamos a dudar de si verdaderamente existe el aparato enemigo, cuando de repente la impresora ultramatricial vuelve a la vida y se pone a escribir...

Programa 8.2

10 FOR tipo=1 TO 45
20 SOUND 1,901,7,15,0,0,1
30 FOR retardo=1 TO 100:NEXT
40 NEXT

El torrente de caracteres escritos por la impresora es incomprensible para los humanos. ¿Por qué no utilizan comunicación electromagnética? Como si nos hubieran leído el pensamiento, el comunicador que tenemos en la mano despierta de su largo sueño...

Programa 8.3

10 FOR repetir=1 TO 6
20 radio=INT(RND*20)
30 SOUND 1,radio,100,15,0,0,1
40 NEXT

Pero nuestro comunicador no puede sintonizar la frecuencia de los enemigos. ¿Nos quedaremos sin saber qué está ocurriendo? Probablemente, pues este sueño está tocando a su fin. Nuestra única esperanza es recurrir al ordenador de a bordo. Tecleamos rápidamente nuestro problema y el ordenador lo procesa.

Programa 8.4

10 FOR repetir=0 TO 140
20 calcula=INT(RND*150)
30 SOUND 1,calcula,3,15,0,0,0
40 NEXT

Esperamos impacientes la respuesta. Pasan unos segundos interminables; nos devoramos las uñas... ya está la respuesta en la pantalla: «FIN DE LA PARTIDA. INTRODUZCA UNA MONEDA DE 25 PESETAS PARA SEGUIR JUGANDO.»

Bien, como escritor de ciencia ficción no seré gran cosa, pero he demostrado que en toda narración se pueden encajar sonidos. Le sugerimos que reúna los programas anteriores en uno solo para hacer sonar el efecto adecuado en cada momento del cuento.

Añadiendo ruido al sonido, mediante el último parámetro de SOUND, podemos convertir el programa 8.4 en el momento final de la caída de una bomba. Teclee el programa 8.5.

Programa 8.5

10 FOR cae=50 TO 150
20 SOUND 1,cae,3,15,0,0,0
30 NEXT
40 FOR repite=0 TO 45
50 calcula=1
60 SOUND 1,calcula,3,15,0,0,31
70 NEXT

Todo lo que se requiere es un poco de imaginación y ganas de experimentar. Cuando se buscan efectos sonoros es conveniente experimentar con una instrucción SOUND y las instrucciones de definición de envolventes. El siguiente programa es un generador de envolventes de volumen. Tecléelo y ejecútelo.

Programa 8.6

10 :
20 REM Inicializar programa
30 :
40 ZONE 40
50 ENV 1
60 CLS
70 :
80 REM Definir menu
90 :
100 PRINT"GENERADOR DE ENVOLVENTES DE VOLUMEN"
110 PRINT,,"1. Envolvente de volumen"
120 PRINT,,,"Elija"
130 a$=INKEY$
140 a=VAL(a$):IF a<>1 THEN 130
150 PRINT a 
160 ON a GOTO 170
170 CLS
180 :
190 REM Elegir numero de secciones
200 REM de la envolvente especificada
210:
220 PRINT "ENVOLVENTE NUMERO 1"
230 PRINT,,,"Introduzca numero de secciones (max. 5)"
240 INPUT secciones
250 FOR sec=1 TO secciones
260 PRINT"Introduzca numero de escalones (0-127)"
270 INPUT ne(sec)
280 PRINT,,"Introduzca altura de los escalones (-128 a +127)"
290 INPUT te(sec)
300 PRINT,,"Introduzca duracion de los escalones (0-255)"
310 INPUT de
320 :
330 REM Escribir parametros en la instruccion
340 REM de envolvente de volumen
350 :
360 ENV 1,ne(1),te(1),de(1),ne(2),te(2),de(2),ne(3),te(3),de(3),ne(4),te(4),de(4),ne(5),te(5),de(5)
370:
380 REM Ir a la siguiente seccion, si la hay
390 :
400 NEXT
410 :
420 REM Captar parametros para
430 REM instruccion SOUND
440 :
450 CLS
460 PRINT"PARAMETROS DE SONIDO"
470 PRINT"Que canal?"
480 INPUT canal
490 PRINT"Duracion?"
500 INPUT duracion
510 PRINT"Ruido (0 a 31)?"
520 INPUT ruido
530 :
540 REM Ejecutar SOUND
550 :
560 SOUND canal,478,duracion,1,1,0,ruido
570 :
580 REM Escribir parametros
590 REM de envolvente
600 :
610 CLS
620 PRINT,,"Los parametros de la envolvente son los siguientes:"
630 PRINT"Envolvente 1"
640 FOR x=1 TO 5
650 PRINT"NS";x;"=";ne(x)
660 PRINT"TS";x;"=";te(x)
670 PRINT"TP";x;"=";de(x)
680 NEXT
690 PRINT"Quiere oirla otra vez?"
700 a$=INKEY$:IF a$="" THEN 700
710 IF a$="S" OR a$="s" THEN 560
720 PRINT"Quiere cambiar los parametros?"
730 PRINT"del sonido"
740 a$=INKEY$:IF a$="" THEN 740
750 IF a$="S" OR a$="s" THEN 450
760 GOTO 40

El programa empieza por ofrecer un menú. En esta versión del programa la única opción es la generación de envolventes de volumen. Cuando haya utilizado el programa y comprendido su funcionamiento, puede añadir la otra opción, la de la envolvente de tono, o cualquier otra mejora que se le ocurra para facilitar la programación de efectos sonoros. Una vez dentro del núcleo del programa, éste le pregunta cuántas secciones quiere definir para la instrucción ENV. Si en ese momento pulsa ENTER, no se define ninguna envolvente. Puede elegir cualquier número entre 1 y 5.

A continuación el programa pide los tres parámetros de cada sección, indicando los márgenes permitidos. Finalmente, el programa ofrece las opciones de los parámetros de la instrucción SOUND y pregunta si se quiere añadir ruido. Se ejecuta el sonido así definido y se visualizan los parámetros de la envolvente. Otras opciones permiten repetir el sonido o modificar los parámetros de SOUND.

El programa debería ser fácil de comprender, pues las instrucciones más importantes están explicadas con líneas REM. Este programa le ayudará a ahorrar tiempo al permitirle probar, con un mínimo esfuerzo, distintos parámetros hasta que dé con el sonido que está buscando.

Para darle un punto de partida, en la tabla 8.1 le facilito los parámetros de algunos de los sonidos que yo he investigado. Tenga en cuenta que algunos de estos sonidos pueden requerir alguna manipulación adicional que el programa 8.6 no permite.

Tabla 8.1 Parámetros de envolventes de volumen (sólo tres secciones) y de la instrucción SOUND.

PERCUSIÓN

Finalmente, antes de abandonar el tema de los efectos sonoros, debemos hablar de los sonidos de percusión, que indudablemente interesarán a quienes deseen programar música. El canal de ruido, en conjunción con las instrucciones ENV y ENT, puede dar diversos efectos de pseudopercusión, desde el redoblante hasta el bombo. El programa 8.7 es un sencillo ejemplo de estas posibilidades.

Programa 8.7

10 ENV 1,23,-68,3
20 FOR duracion=1 TO 50
30 SOUND 7,748,duracion,15,1,1,1
40 NEXT

Y con esto terminamos nuestra breve incursión por el planeta de los efectos sonoros. Usted puede pasar muchas horas probando y seleccionando sonidos. Con toda seguridad, descubrirá alguno que pueda incluir en sus programas, ya sea para hacerlos más atractivos, por mera diversión o para irritar a los vecinos.