#uselib "winmm.dll" #func global waveInOpen "waveInOpen" int, int, int, int, int, int #func global waveInPrepareHeader "waveInPrepareHeader" int,int,int #func global waveInReset "waveInReset" int #func global waveInStart "waveInStart" int #func global waveInStop "waveInStop" int #func global waveInAddBuffer "waveInAddBuffer" int,int,int #func global waveInUnprepareHeader "waveInUnprepareHeader" int,int,int #func global waveInClose "waveInClose" int dim Waveformatex,5 ch=2 freq=22050 bitrate=8 SAMPLES = 640 Waveformatex(0)=1+(ch<<16) Waveformatex(1)=freq Waveformatex(2)=freq*bitrate/8*ch Waveformatex(3)=bitrate/8*ch|(bitrate<<16) Waveformatex(4)=0 dim wavehdr2,8 BUFFERS=4 BUFLEN=SAMPLES*ch*bitrate/8 dim wavehdr,8,BUFFERS dim buf,BUFLEN,BUFFERS dim hwi,50 waveInOpen varptr(hwi),-1,varptr(Waveformatex),hwnd,0,$00010000 if stat!0: dialog "waveInOpenに失敗しました。error:"+stat,1 : end repeat BUFFERS wavehdr.0.cnt = varptr(buf.0.cnt) wavehdr.1.cnt =BUFLEN waveInPrepareHeader hwi,varptr(wavehdr.0.cnt),32 ;waveInAddBuffer hwi,wavehdr,32 waveInAddBuffer hwi,varptr(wavehdr.0.cnt),32 loop waveInStart hwi oncmd gosub *GET,$000003C0 onexit *EXIT stop *GET redraw 0 color 255,255,255 boxf dupptr whdr,lparam,32 dupptr wdata, whdr.0, BUFLEN/4*4+4 color 0,0,0 repeat buflen pset cnt,peek(wdata,cnt);,cnt+1,peek(wdata,cnt+1) line cnt,peek(wdata,cnt),cnt+1,peek(wdata,cnt+1) loop pos 0,0 font "",12 color 150,150,150 redraw 1 waveInAddBuffer wparam,lparam,32 await 1 return stop *EXIT waveInReset hwi waveInClose hwi end