[
板情報
|
カテゴリランキング
]
したらばTOP
■掲示板に戻る■
全部
1-100
最新50
|
メール
|
1-
101-
201-
301-
401-
501-
601-
701-
801-
901-
1001-
1101-
1201-
1301-
1401-
1501-
1601-
1701-
1801-
1901-
2001-
2101-
2201-
2301-
2401-
2501-
2601-
2701-
2801-
2901-
3001-
3101-
3201-
3301-
3401-
3501-
3601-
3701-
3801-
3901-
4001-
4101-
4201-
4301-
4401-
4501-
4601-
4701-
4801-
4901-
5001-
5101-
5201-
5301-
5401-
この機能を使うにはJavaScriptを有効にしてください
|
管理人の独り言(プログラミング関連)
1949
:
◆adhRKFl5jU
:2009/05/22(金) 23:05:25
#include <stdio.h>
#include <math.h>
#include <windows.h>
#define PI 3.14159265358979323846264338327950288419716939937510582097494459230781640628620899862803482534211
void CALLBACK waveOutProc(
HWAVEOUT hwo,
UINT msg,
DWORD dwInstance,
DWORD dwParm1,
DWORD dwParm2
){
}
int main(int argc, char **argv){
HWAVEOUT hwo;
WAVEFORMATEX wf;
wf.wFormatTag = WAVE_FORMAT_PCM;
wf.nChannels = 1;
wf.wBitsPerSample = 8;
wf.nBlockAlign = wf.nChannels * wf.wBitsPerSample / 8;
wf.nSamplesPerSec = 44100;
wf.nAvgBytesPerSec = wf.nSamplesPerSec * wf.nBlockAlign;
waveOutOpen(
&hwo,
WAVE_MAPPER,
&wf,
(DWORD)waveOutProc,
0,
CALLBACK_FUNCTION
);
int len = wf.nAvgBytesPerSec * 2;
BYTE *p = (BYTE*)malloc(len);
unsigned int hz;
puts("適当にHz数でも入力してください。二秒ぐらい音がします。");
scanf("%d", &hz);
for(int i = 0; i < len; ++i){
//p[i] = sin((double)i / 180 * 1024 * 2 * 2 * 2 * 2 * 2 * PI) * 0xFF;
p[i] = sin((double)i / wf.nAvgBytesPerSec * PI * 2 * hz) * 0xFF;
}
WAVEHDR whdr;
whdr.lpData = (LPSTR)p;
whdr.dwBufferLength = len;
whdr.dwFlags = WHDR_BEGINLOOP | WHDR_ENDLOOP;
whdr.dwLoops = 1;
waveOutPrepareHeader(hwo, &whdr, sizeof(WAVEHDR));
waveOutWrite(hwo, &whdr, sizeof(WAVEHDR));
Sleep(2050);
return 0;
}
新着レスの表示
名前:
E-mail
(省略可)
:
※書き込む際の注意事項は
こちら
※画像アップローダーは
こちら
(画像を表示できるのは「画像リンクのサムネイル表示」がオンの掲示板に限ります)
スマートフォン版
掲示板管理者へ連絡
無料レンタル掲示板