Nadie mejor que el autor de esta demo, Carlo Bandini para explicar en qué consiste:
Esta demo es una pequeña muestra de cómo se puede modular la onda cuadrada del PSG mediante el comando PLAY del MSX-BASIC.
Si tomamos la onda cuadrada del PSG como portadora, existe la posibilidad de utilizar la envolvente de volumen como onda moduladora. El método consiste en definir el patrón de modulación con la función S y darle la frecuencia de modulación utilizando la función M, pero en lugar de utilizar valores altos de M para generar la envolvente de volumen, hay que utilizar valores muy pequeños para que la envolvente pueda interferir sobre la onda portadora modulándola como si se tratara de un sintetizador FM.
Yo particularmente no he encontrado ninguna explicación en ningún sitio sobre la traducción en herzios de los valores de M, pero supongo que no debería ser muy complicado para alguien que conozca más a fondo el MSX. No obstante, mediante pruebas, he descubierto que si damos a M valores exponenciales de 2 (sobre todo 16 y 32) y utilizando como portadora la nota LA en cualquiera de sus octavas (sobre todo en O4), la onda moduladora y la portadora casi llegan a entrar en resonancia, de manera que podríamos deducir que si M es 16 ó 32, se producirá una oscilación similar a 440 herzios o a un múltiplo de éste número.
El problema principal es que como M sólo acepta números enteros, los saltos que se producen entre valores no nos permiten utilizar éste método correctamente para generar tonos estables que no varíen al variar la nota. No obstante, se puede utilizar bastante bien para generar efectos especiales.
Supongo que desde el código máquina se podrá de alguna manera ajustar la frecuencia de modulación de manera más exacta, pero lamentáblemente, yo soy músico, y no programador.
Enlace relacionado: Demo PSG de Carlos Bandini.