#include #include // winmm.lib ‚ðƒŠƒ“ƒN‚·‚é #pragma comment(lib,"winmm") #define SRATE 8000 //•W–{‰»Žü”g”(1•bŠÔ‚̃Tƒ“ƒvƒ‹”) #define F 400 //Žü”g”(1•bŠÔ‚Ì”gŒ`”) #define PI 3.141592653589793 //‰~Žü—¦ LRESULT CALLBACK WindowProc(HWND hWnd,UINT uMsg,WPARAM wParam,LPARAM lParam) { WAVEFORMATEX wfe; static HWAVEOUT hWaveOut; static WAVEHDR whdr; static LPBYTE lpWave; int i,len; double d; switch(uMsg){ case WM_CREATE: wfe.wFormatTag=WAVE_FORMAT_PCM; wfe.nChannels=1; //ƒ‚ƒmƒ‰ƒ‹ wfe.wBitsPerSample=8; //—ÊŽq‰»ƒrƒbƒg” wfe.nBlockAlign=wfe.nChannels * wfe.wBitsPerSample/8; wfe.nSamplesPerSec=SRATE; //•W–{‰»Žü”g” wfe.nAvgBytesPerSec=wfe.nSamplesPerSec * wfe.nBlockAlign; waveOutOpen(&hWaveOut,WAVE_MAPPER,&wfe,0,0,CALLBACK_NULL); lpWave=(LPBYTE)calloc(wfe.nAvgBytesPerSec,2); //2•b•ª len=SRATE/F; //”g’· for(i=0;i