CyberPress.Sopron

(http://www.cyberpress.hu/)

Rovat: Dr. Bit

2000. május 29., hétfő 00:00


Hangok és dallamok...

Programozzunk együtt.

				Hangok és dallamok
Bizonyára már te is találkoztál olyan programmal, 
amely egyszerû hangokkal 
figyelmeztetett valamire.(Ilyen lehet például valamilyen üzenetet 
kísérõ csipogás.) 
A számítógép többféle módon adhat ki hangokat, 
ugyanis (legalábbis majdnem 
minden gépben) van egy kis, beépített hangszóró, illetve lehet egy 
hangkártya is, külsõ
hangszórókkal. A hangkártyák használata egy kicsit bonyolultabb, 
ezért 
ezekkel
valamikor késõbb foglalkozom majd, de ott van a beépített hangszóró, 
ami kiválóan
alkalmas arra, hogy egyszerû hangokat, dallamokat lejátsszunk vele. 
Ennek használata
nagyon könnyû C és C++ -ban. Van ugyebár nekünk egy sound() 
függvényünk a DOS.H -ban,
ami megszólaltatja a hangszórót a paraméterként kapott frekvencián. A 
hang egészen 
addig szól, ameddig egy nosound() függvény nem kerül 
meghívásra. A DOS.H -ban van
még (sok egyéb más függvény mellett) egy delay() utasítás, 
ami annyi ezredmásodpercet
vár, amennyit paraméterként kapott. (1000 ezredmásodperc=1 másodperc)
Itt van hát egy egyszerû példa, ami egy másodpercig 440 Hz-en 
szól:
/* sound1.c - Egy egyszeru pelda a sound() 
fuggveny hasznalatara */
#include<dos.h>
void main(void)
{
sound(440);
delay(1000);
nosound();
}
Ha egymás után több hangot szeretnénk lejátszani, 
az is megoldható, csak több
sound() utasítás kell egymás után:

/* sound2.c - Egy egyszeru pelda a sound() -al valo dallamlejatszasra 
*/
#include<dos.h>
#define WAIT 1000
void main(void)
{
sound(440);
  delay(WAIT);
sound(660);
  delay(WAIT);
sound(1000);
  delay(WAIT);
sound(5000);
  delay(WAIT);
nosound();
}
(A #define egy állandó(konstans) értéket 
definiál fordítási idõben.)
Ha csak 'csipogtatni' akarsz, küldj ki egy 'a' -
t 
a képernyõre!
#include<dos.h>
#include<stdio.h>
void main(void)
{
printf("a");
}
Próbálkozz vele egy kicsit, nagyon jó dallamokat 
lehet vele kihozni.
Megjegyzés: Lehet, hogy a hangszóró nem tud túl alacsony hangokat
(általában 10Hz alatt) megszólaltatni.
Hát mostanra ennyi!
A következõ alkalommal a billentyûzetkezeléssel fogok foglalkozni.
			
PET