#include // winmm.lib をリンクする #pragma comment(lib,"winmm") #define SRATE 8000 //標本化周波数(1秒間のサンプル数) #define F 400 //周波数(1秒間の波形数) 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; //モノラル wfe.wBitsPerSample=8; //量子化ビット数 wfe.nBlockAlign=wfe.nChannels * wfe.wBitsPerSample/8; wfe.nSamplesPerSec=SRATE; //標本化周波数 wfe.nAvgBytesPerSec=wfe.nSamplesPerSec * wfe.nBlockAlign; waveOutOpen(&hWaveOut,WAVE_MAPPER,&wfe,0,0,CALLBACK_NULL); lpWave=(LPBYTE)calloc(wfe.nAvgBytesPerSec,2); //2秒分 len=SRATE/F; //波長 d=255.0/(len-1); for(i=0;i