Suonare un pianoforte sulla tastiera di Windows

Premessa

Questo articolo è molto vecchio e l’autore di questa pagina nel frattempo è maturato un filino culturalmente e quindi si vergogna molto di quanto qui vi sia scritto. Nello specifico, l’autore prova conati di vomito al solo pensiero di consigliare software non-libero ad un lettore.

Questi contenuti comunque rimarranno online per aiutare a ricordarsi di quanto si era ignoranti in Informatica solo pochi anni fa e di quanto sia stata sottile la linea che mi separava da Aranzulla.

P.S.
Se trovi un’altra guida del genere in Internet senza un simile disclaimer, insulta immediatamente l’autore.

Immagine emulatore musicale per Windows - Reyboz BlogSiccome abbiamo già parlato di funzioni per emettere un suono dal Pascal oggi ne citeremo un’ulteriore per leggere un carattere alla sua sola pressione: potremo così ad esempio creare un piccolo programma per suonare dal vivo dalla tastiera del pc.

Approfondimento per i neo programmatori in Pascal

Il programma sommariamente segue questo piccolo schema logico:

  1. Si richiede un input
  2. Continua se il carattere è una cifra da 0 a 9; altrimenti -> punto 1
  3. Continua se il carattere non è zero; altrimenti -> punto 7
  4. Impostare frequenza (hz) e testo (nm) a seconda del carattere inserito
  5. Suonare la frequenza e scrivere il testo.
  6. Torna al punto 1
  7. (Fine del programma)

In linguaggio Pascal l’input immediato (senza premere invio) si ottiene con X=READKEY, al posto del classico readln(x). In questo modo appena si premerà un tasto, si otterrà X. Da notare che con il metodo Readkey l’input non viene scritto sullo schermo…

Ecco dunque il listato dell’intero programma Reyboz Sound:

PROGRAM REYBOZ_SOUND; USES CRT;
VAR X:CHAR; HZ:INTEGER; NM:STRING;
BEGIN
CLRSCR;
WRITELN('Inserisci da 1 a 9 per suonare, 0 per uscire.');
WHILE(X<>'0')DO BEGIN
REPEAT;
X:=READKEY;
UNTIL (X='0')OR(X='1')OR(X='2')OR(X='3')OR(X='4')OR(X='5')OR(X='6')
OR(X='7')OR(X='8')OR(X='9');
CASE X OF
'1': BEGIN HZ:=262; NM:='DO ';END;
'2': BEGIN HZ:=294; NM:='RE ';END;
'3': BEGIN HZ:=330; NM:='MI ';END;
'4': BEGIN HZ:=349; NM:='FA ';END;
'5': BEGIN HZ:=392; NM:='SOL';END;
'6': BEGIN HZ:=440; NM:='LA ';END;
'7': BEGIN HZ:=494; NM:='SI ';END;
'8': BEGIN HZ:=523; NM:='DO+';END;
'9': BEGIN HZ:=587; NM:='RE+';END;
END;
SOUND(HZ);
WRITE(NM,' ');
DELAY(100);
NOSOUND;
END;
WRITELN('Fine programma.');
READLN;
END.


Comunque sottolineiamo che per utilizzare il nostro Reyboz Sound non occorre essere geni d’informatica in quanto dal link citato in alto si ottiene un exe (e gli exe partono con due clic…). Ricordiamo inoltre a tutti i possessori di computer a 64 bit che il Turbo Pascal e i suoi derivati non funzionano o fanno capricci su Windows 7, quindi prendetevela con Bill se qualcosa non funziona sul vostro 7! ;) Buon Reyboz Sounding a tutti!