Oppure

Loading
11/07/14 14:39
Salve volevo sapere come emettere un suono ad una certa frequenza in Pascal. So che esiste la procedura sound() nella crt, ma l'ho provata ed emette un suono sempre alla stessa frequenza. Il codice è:


program ProvaSuono;

uses crt;

var frequenza;

begin

      frequenza := 440;

      write('Suono a 440 Hz (La)');
      readkey;
      sound(frequenza);
      delay(1000); 
      nosound;

      readkey;
      frequenza := 446;      

      write('Suono a 446 Hz (La#/Si b)');
      readkey;
      sound(frequenza);
      delay(1000); 
      nosound;

      readkey;
      frequenza := 494;      

      write('Suono a 494 Hz (Si)');
      readkey;
      sound(frequenza);
      delay(1000); 
      nosound;

end.


Se compilo il codice, che non mi sembra contenga errori, produce sempre lo stesso suono, anche se la frequenza cambia. Come mai?

Grazie in anticipo.
11/07/14 16:02
nessuno
Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità.
11/07/14 17:11
Adesso funziona, grazie mille:k:
29/07/14 17:32
Scusate se mi intrometto, l'argomento interessa anche a me.

volevo chiedere a qualcuno di esperto:
perchè la funzione sound (h) funziona su dosbox (free pascal) mentre se uso un compilatore per windows (dev-pascal) il prompt dei comandi emette un singolo beep (quello di avviso), qualunque sia la frequenza impostata?

Questa per me è una grossa limitazione, infatti, anche se occupano molto di più, preferirei compilare i programmi in 64 bit invece che a 16 bit, perchè non devo usare (e far usare agli ipotetici utenti del mio programma) dosbox !

grazie





edit 1:
ops, mi scuso molto, ho notato adesso il link. Io conoscevo già la funzione beep(h,d), ma non l'avevo mai usata perchè richiede di immettere la durata. come si fa a togliere quel parametro? E' possibile? intendo farla diventare come sound(h) che di parametri ha solo la frequenza, perchè mi servirebbe poter fare altre cose contemporaneamente al suono, infatti ora il secondo parametro di beep corrisponde al delay e mi blocca il programma.

edit 2:
ho notato che il sound del dosbox è migliore di quello del command, infatti se con dosbox metto una frequenza inferiore ai 20 Hz non la sento, se è superiore a 18000 la sento con difficoltà.
con il command invece le sento tutte, anche 5 o 25000 Hertz. La cosa mi pare strana, è come se non fosse l'altoparlante a vibrare il giusto numero di volte, ma l'altoparlante che ripetesse un suono standard un numero di volte pari alla frequenza! non mi sembra giusto, infatti se sento 5 Hz vuol idre che il non ha tale frequenza.

aspetto pareri
Ultima modifica effettuata da 30/07/14 12:46