Programación con Amstrad CPC
Por Nacho Cabanes, versión 0.40, de 16-Feb-2010

Tema 9 - Introducción al sonido con un CPC

Esta introducción va a ser solo eso, una introducción, por tres motivos:

Aun así, veremos lo básico sobre cómo tocar notas simples y cómo hacer algún efecto sencillo de sonido.

 

9.1 Emitiendo sonidos: SOUND

La orden SOUND es la básica para emitir sonidos. En ella tenemos que indicar al menos dos datos: el canal que queremos usar (tenemos 3 canales, lo que permite tocar varias notas a la vez) y el tono de la nota:

SOUND 1, 478

Eso toca a través del canal 1 una nota DO en una escala intermedia (el CPC permite notas dentro de una gama de 8 octavas, numeradas desde -3 hasta 4; este es el DO de la octaba 0).

El resto de tonos de las notas de esta octava intermedia son:
DO = 478
RE = 426
MI = 379
FA = 358
SOL = 319
LA = 284
SI = 253

Así, si queremos tocar una melodía sencilla como RE-MI-FA-RE- RE-MI-FA-RE- FA-SOL-LA lo podríamos hacer con

10 'Usaremos variables, por legibilidad
20 DO0 = 478: RE0 = 426: MI0 = 379: FA0 = 358
30 SOL0 = 319: LA0 = 284: SI0 = 253
40 ' Y esta es la melodia
50 SOUND 1, RE0
60 SOUND 1, MI0
70 SOUND 1, FA0
80 SOUND 1, RE0
90 SOUND 1, RE0
100 SOUND 1, MI0
110 SOUND 1, FA0
120 SOUND 1, RE0
130 SOUND 1, FA0
140 SOUND 1, SOL0
150 SOUND 1, LA0
 

El segundo canal de sonido es el 2 y el tercero es el 4. Así, podemos hacer que una nota suene a la vez por los canales 1 y 3 indicando como canal 1+4=5, o que suene por los tres canales a la vez con 1+2+4=7.

SOUND 7, 478

Un tercer parámetro que podríamos emplear es la duración de la nota, que se mide en centésimas de segundo. Si no indicamos otra cosa, durará 20 centésimas de segundo. Si queremos que suene un segundo entero, lo haríamos con

SOUND 7, 478, 100

Un cuarto parámetro es el volumen, desde 0 (silencio) a 7 (máximo). Por ejemplo, una nota de volumen medio podría ser

SOUND 7, 478, 100, 4

Hay más parámetros, pero los iremos viendo un poco más adelante, cuando hablemos de las envolventes y del ruido.

9.2 La envolvente de volumen

Los CPC permiten hacer variaciones sobre un sonido mientras que éste se emite. Por ejemplo, podemos variar el volumen. Para indicar que el volumen debe variar mientras se reproduce el sonido, deberemos crear una "envolvente de volumen". Para eso se usa la orden ENV. Vamos a empezar por un ejemplo, en el que el volumen aumente poco a poco. Por ejemplo, en 5 etapas, en cada una de las cuales el sonido aumente una unidad, y que duren 20 centésimas de segundo:

ENV 1,5,3,20
SOUND 1,478,0,0,1

La orden SOUND que usa esta envolvente tiene un quinto parámetros el número de envolvente (1 en nuestro caso). El tercer parámetro de SOUND, la duración, lo dejamos a valor 0, para que sea la envolvente la que marque cuanto debe durar el sonido. El cuarto parámetro, el volumen, lo dejamos en cero, porque queremos que la nota empiece desde el silencio.

El resultado es un sonido que dura un segundo (5x20 centésimas), empieza desde el silencio (0) y alcanza el volumen máximo (5x3=15).

Podemos añadir más secciones a la orden ENV, hasta completar un máximo de 5. Por ejemplo, podemos hacer que el sonido suba más suavemente, luego se mantenga, y luego baje, usando 3 secciones:

ENV 2, 12,1,5, 1,0,20, 6,-2,20
SOUND 1,478,0,0,2

En este caso, hemos creado la envolvente número 2. La primera sección dura 60 centésimas de segundo (12 etapas de 5 centésimas) y sube su volumen 1 a 1 desde 0 hasta 12. La siguiente sección tiene una única etapa de 20 centésimas, en la que no varía el volumen. La tercera y última etapa dura 1,20 segundos (6 etapas de 20 centésimas), en las que su volumen baja de -2 en -2 hasta volver a cero.

Podemos crear hasta 15 envolventes de volumen.

 

9.3 La envolvente de tono

(Apartado sin completar. Pronto estará terminado.)