viernes, 7 de mayo de 2010

El registro 13


Programando la función del player del PSGed, me he dado cuenta de una peculiaridad del AY-3-8910 que desconocía, que repercute en el funcionamiento del secuenciador.

El PSG tiene dos formas de operar. Si no utilizamos la envolvente, lo que determina que suene el PSG, es principalmente el valor del volumen y del mixer, pero si la utilizamos la cosa cambia. Lo que provoca que se disparen los sonidos, es cuando damos un valor al registro 13 (la forma de envolvente). Eso quiere decir que si queremos disparar sonidos independientes en cada canal, con el mismo envolvente, no lo podremos hacer, ya que al tocar este registro, nos sonarán los tres a la vez.

Una posible solución es apagar el sonido del resto de canales, poniendo el valor 0 en los registros de amplitud (con el mixer suena un beep extraño). Como deduciréis, dependiendo del periodo y el tipo de envolvente que usemos, nos cortará el sonido de los otros canales.

La mejor solución seria crear envolventes modificando los valores del volumen mediante programación. Esto nos permitiría utilizar diferentes envolventes en cada canal, o asignarlas a instrumentos. En el caso del PSGed, como la intención es usar directamente los registros del PSG, he utilizado la primera solución.

A continuación un ejemplo para probar lo explicado en este post:
Nota: Suena el tono de los canales A y C, y el ruido del canal B.
100 ' frecuencias de los 3 canales
110 '
120 SOUND 0,100
130 SOUND 1,10
140 SOUND 2,200
150 SOUND 3,100
160 SOUND 4,200
170 SOUND 5,20
180 ' frecuencia de ruido
190 SOUND 6,10
200 ' registros de amplitud
210 ' activamos la envolvente
220 SOUND 8,16
230 SOUND 9,16
240 SOUND10,16
250 ' mixer
260 SOUND 7,&B00101010
270 ' periodo de la envolvente
280 SOUND 11,100
290 SOUND 12,10
300 '
310 IF INKEY$="" THEN 310
320 ' forma de la envolvente
330 ' y dispara el sonido
340 SOUND 13,1
350 GOTO 310

No hay comentarios:

Publicar un comentario