Este es el primero, para Amstrad, un mini órgano musical de Amstrad Semanal nº 13.
- Code:
// Super órgano musical
// Adaptado de programa de Amstrad Semanal nº 13
// sección Análisis, página 12
include "cpc464.ccz80";
// Definición de notas y tonos
array word notas = { "DO", "DO#", "RE", "RE#", "MI", "FA", "FA#", "SOL", "SOL#", "LA", "LA#", "SI", "DO2", "DO#2", "RE2", "RE#2", "MI2" },
tonos = { 478, 451, 426, 402, 379, 358, 330, 319, 301, 284, 268, 253, 239, 225, 213, 201, 190 };
// Pulsar f0 para comenzar
key(0, "speed key 30,2\r"); // No entiendo por qué esta instrucción
// Búsqueda en teclado
speedkey(1, 2);
word tecla = "q2w3er5t6y7ui9o0p";
byte x = 0, pulsar, nota;
word n;
while (x == 0) // No entiendo por qué esta condición
{
LeerTecla:
pulsar = inkey();
if (pulsar == 0) goto LeerTecla;
n = strchr(tecla, pulsar);
if (n == 0) goto LeerTecla;
nota = n - tecla; // Valor de nota entre 0 y 16
prints(**(notas + nota * 2));
prints("\n\r");
// Generación de sonido
sound(1, **(tonos + nota * 2), 5, 15, 0, 0, 0);
}