Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
Pascal - Emettere un suono ad una certa frequenza?
Forum - Pascal - Emettere un suono ad una certa frequenza?

Avatar
()
Newbie


Messaggi:
Iscritto:

Segnala al moderatore
Postato alle 1:00
Giovedì, 01/01/1970
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 è:

Codice sorgente - presumibilmente Delphi

  1. program ProvaSuono;
  2.  
  3. uses crt;
  4.  
  5. var frequenza;
  6.  
  7. begin
  8.  
  9.       frequenza := 440;
  10.  
  11.       write('Suono a 440 Hz (La)');
  12.       readkey;
  13.       sound(frequenza);
  14.       delay(1000);
  15.       nosound;
  16.  
  17.       readkey;
  18.       frequenza := 446;      
  19.  
  20.       write('Suono a 446 Hz (La#/Si b)');
  21.       readkey;
  22.       sound(frequenza);
  23.       delay(1000);
  24.       nosound;
  25.  
  26.       readkey;
  27.       frequenza := 494;      
  28.  
  29.       write('Suono a 494 Hz (Si)');
  30.       readkey;
  31.       sound(frequenza);
  32.       delay(1000);
  33.       nosound;
  34.  
  35. 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.

PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 6380
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 18:02
Venerdì, 11/07/2014


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à.
PM Quote
Avatar
()
Newbie


Messaggi:
Iscritto:

Segnala al moderatore
Postato alle 19:11
Venerdì, 11/07/2014
Adesso funziona, grazie mille:k:

PM Quote
Avatar
()
Newbie


Messaggi:
Iscritto:

Segnala al moderatore
Postato alle 19:32
Martedì, 29/07/2014
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 il 30/07/2014 alle 14:46
PM Quote