Next step is to create a file called beep.decls in the userlibs folder and put this in it.
Now you should be able to run this example code. The main problem with using beep is that it uses a delay to make the beep, so you can't stop it pausing the engine. This is why I'll be doing something like Cygnus' retrosound demo for my sounds. :)
.lib "beep.dll" Beep%(Frequency%, Duration%)
Now you should be able to run this example code. The main problem with using beep is that it uses a delay to make the beep, so you can't stop it pausing the engine. This is why I'll be doing something like Cygnus' retrosound demo for my sounds. :)
;Beep dll example - musical keyboard, by muk on 16/1/06 Graphics3D 640,480,16,2 SetBuffer BackBuffer() camera=CreateCamera() light=CreateLight() RotateEntity light,90,0,0 cube=CreateCube() PositionEntity camera,0,0,-5 ;Main Loop While Not KeyDown(1) y#=y+0.4 : If y>359 Then y=0 RotateEntity cube,y,y,y RenderWorld If KeyDown(2) ;1 key - Bell tone Beep(660,50) Beep(525,50) EndIf If KeyDown(3) ;2 key - Siren wail If k2=0 k2=1 ;init np=0 EndIf np=np+1 If np>179 Then np=0 s=Sin(np)*500+500 Beep(s,15) Else k2=0 EndIf If KeyDown(4) ;3 key - Pitch up If k3=0 k3=1 ;init np=100 EndIf np=np+2 If np>1000 Then np=100 ;wrap Beep(np,5) Else k3=0 EndIf If KeyDown(5) ;4 key - Pitch down If k4=0 k4=1 ;init np=1000 EndIf np=np-2 If np<100 Then np=1000 ;wrap Beep(np,5) Else k4=0 EndIf If KeyDown(6) ;5 key - Frere Gustav If k5=0 k5=1 ;init ncou=0 Restore FrereGustav EndIf If bf=0 bf=1 ;note on ncou=ncou+1 Read frequency : Read duration Beep(frequency,duration) EndIf If bf=1 bf=0 ;note off Delay duration EndIf If ncou>=36 Then k5=0 ;reset, last note Else k5=0 EndIf If KeyDown(7) ;6 key - Worms Theme If k6=0 k6=1 ;init ncou=0 Restore WormsTheme EndIf If bf=0 bf=1 ;note on ncou=ncou+1 Read frequency : Read duration Beep(frequency,duration) EndIf If bf=1 bf=0 ;note off Delay duration EndIf If ncou>=24 Then k6=0 ;reset, last note Else k6=0 EndIf dur=150 ;note duration If KeyDown(17) ;W key - Db5 If kw=0 Then kw=1 : Beep(280,dur) Else : kw=0 : EndIf If KeyDown(18) ;E key - Eb5 If ke=0 Then ke=1 : Beep(315,dur) Else : ke=0 : EndIf If KeyDown(20) ;T key - F#5 If kt=0 Then kt=1 : Beep(370,dur) Else : kt=0 : EndIf If KeyDown(21) ;Y key - G#5 If ky=0 Then ky=1 : Beep(420,dur) Else : ky=0 : EndIf If KeyDown(22) ;U key - Bb5 If ku=0 Then ku=1 : Beep(470,dur) Else : ku=0 : EndIf If KeyDown(24) ;O key - Db6 If ko=0 Then ko=1 : Beep(560,dur) Else : ko=0 : EndIf If KeyDown(25) ;P key - Eb6 If kp=0 Then kp=1 : Beep(630,dur) Else : kp=0 : EndIf If KeyDown(30) ;A key - C5 If ka=0 Then ka=1 : Beep(265,dur) Else : ka=0 : EndIf If KeyDown(31) ;S key - D5 If ks=0 Then ks=1 : Beep(295,dur) Else : ks=0 : EndIf If KeyDown(32) ;D key - E5 If kd=0 Then kd=1 : Beep(330,dur) Else : kd=0 : EndIf If KeyDown(33) ;F key - F5 If kf=0 Then kf=1 : Beep(350,dur) Else : kf=0 : EndIf If KeyDown(34) ;G key - G5 If kg=0 Then kg=1 : Beep(395,dur) Else : kg=0 : EndIf If KeyDown(35) ;H key - A5 If kh=0 Then kh=1 : Beep(445,dur) Else : kh=0 : EndIf If KeyDown(36) ;J key - B5 If kj=0 Then kj=1 : Beep(495,dur) Else : kj=0 : EndIf If KeyDown(37) ;K key - C6 If kk=0 Then kk=1 : Beep(530,dur) Else : kk=0 : EndIf If KeyDown(38) ;L key - D6 If kl=0 Then kl=1 : Beep(595,dur) Else : kl=0 : EndIf If KeyDown(44) ;Z key - C4 If kz=0 Then kz=1 : Beep(130,dur) Else : kz=0 : EndIf If KeyDown(45) ;X key - D4 If kx=0 Then kx=1 : Beep(150,dur) Else : kx=0 : EndIf If KeyDown(46) ;C key - E4 If kc=0 Then kc=1 : Beep(165,dur) Else : kc=0 : EndIf If KeyDown(47) ;V key - F4 If kv=0 Then kv=1 : Beep(175,dur) Else : kv=0 : EndIf If KeyDown(48) ;B key - G4 If kb=0 Then kb=1 : Beep(195,dur) Else : kb=0 : EndIf If KeyDown(49) ;N key - A4 If kn=0 Then kn=1 : Beep(220,dur) Else : kn=0 : EndIf If KeyDown(50) ;M key - B4 If km=0 Then km=1 : Beep(245,dur) Else : km=0 : EndIf Text 16,16,"|1|2|3|4|5|6|" Text 16,48," |W|E| |T|Y|U| |O|P|" Text 16,64,"|A|S|D|F|G|H|J|K|L|" Text 16,80,"|c|d|e|f|g|a|b|c|d|" Text 16,112,"|Z|X|C|V|B|N|M|" Text 16,128,"|c|d|e|f|g|a|b|" Flip Wend End .FrereGustav ;36 notes ;C/1 D/1 Eb/0.5 D/0.5 C/1 Data 265,200,295,200,315,100,295,100,265,200 Data 265,200,295,200,315,100,295,100,265,200 ;Eb/1 F/1 G/2 Data 315,200,350,200,395,400 Data 315,200,350,200,395,400 ;G/0.75 G#/0.25 G/0.5 F/0.5 Eb/0.5 D/0.5 C/1 Data 395,150,420, 50,395,100,350,100,315,100,295,100,265,200 Data 395,150,420, 50,395,100,350,100,315,100,295,100,265,200 ;C/1 B/1 C/2 Data 265,200,195,200,265,400 Data 265,200,195,200,265,400 .WormsTheme ;24 notes ;C/0.5 D/0.5 E/1 G/1 G/1 Data 265,100,295,100,330,200,395,200,395,200 ;F/0.5 E/0.5 D/0.5 C/0.5 D/0.5 E/0.5 D/1.5 Data 350,100,330,100,295,100,265,100,295,100,330,100,295,300 ;C/0.5 D/0.5 C/0.5 D/0.5 E/0.5 A/1.5 Data 265,100,295,100,265,100,295,100,330,100,220,300 ;C/0.5 D/0.5 C/0.5 D/0.5 E/0.5 D/1 Data 265,100,295,100,265,100,295,100,330,100,295,200