懐かしいビープ音を最新型のパソコンで鳴らしてみます。
ビープ音を単純に鳴らしても面白くないのでドレミ音階で鳴らします。
音階の一覧
プロトタイプ宣言
BOOL Beep( DWORD dwFreq, // 音の周波数(Hz) DWORD dwDuration // 音の持続時間(ms) );
上記の Beep 関数はスピーカから単純なビープ音を鳴らします。
この関数の第一引数に音の周波数(Hz)を指定して、第二引数に持続時間(ms)を指定します。
この関数は同期実行されるため音が鳴り終わるまでは呼び出し側へ制御を返しません。
サンプル1
最初は基本中のド・レ・ミ・ファ・ソ・ラ・シ・ドの8段階を鳴らします。
なお、持続時間(ms)は全て200msに固定にしてます。
- ド・・・・・440(Hz)
- レ・・・・・494(Hz)
- ミ・・・・・554(Hz)
- ファ・・・587(Hz)
- ソ・・・・・659(Hz)
- ラ・・・・・740(Hz)
- シ・・・・・830(Hz)
- ド・・・・・880(Hz)
//============================================================================== // Beep関数で音階を鳴らそう(1) //============================================================================== #include <tchar.h> #include <Windows.h> //------------------------------------------------ // メイン関数 //------------------------------------------------ extern int WINAPI _tWinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPTSTR lpCmdLine, int nCmdShow ) { Beep( 440, 200 ); // ド Beep( 494, 200 ); // レ Beep( 554, 200 ); // ミ Beep( 587, 200 ); // ファ Beep( 659, 200 ); // ソ Beep( 740, 200 ); // ラ Beep( 830, 200 ); // シ Beep( 880, 200 ); // ド UNREFERENCED_PARAMETER( hInstance ); UNREFERENCED_PARAMETER( hPrevInstance ); UNREFERENCED_PARAMETER( lpCmdLine ); UNREFERENCED_PARAMETER( nCmdShow ); return 0; }
サンプル2
続いてド・ド#・レ・レ#・ミ・ファ・ファ#・ソ・ソ#・ラ・ラ#・シ・ドの13段階を鳴らします。
こちらは持続時間(ms)を音階によって変えてます。
- ド・・・・・・440(Hz)+161(ms)
- ド#・・・・・466(Hz)+152(ms)
- レ・・・・・・494(Hz)+143(ms)
- レ#・・・・・523(Hz)+135(ms)
- ミ・・・・・・554(Hz)+128(ms)
- ファ・・・・587(Hz)+120(ms)
- ファ#・・・622(Hz)+114(ms)
- ソ・・・・・・659(Hz)+107(ms)
- ソ#・・・・・698(Hz)+101(ms)
- ラ・・・・・・740(Hz)+ 95(ms)
- ラ#・・・・・784(Hz)+ 90(ms)
- シ・・・・・・830(Hz)+ 85(ms)
- ド・・・・・・880(Hz)+ 80(ms)
//============================================================================== // Beep関数で音階を鳴らそう(2) //============================================================================== #include <tchar.h> #include <Windows.h> //------------------------------------------------ // メイン関数 //------------------------------------------------ extern int WINAPI _tWinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPTSTR lpCmdLine, int nCmdShow ) { Beep( 440, 161 ); // ド Beep( 466, 152 ); // ド# Beep( 494, 143 ); // レ Beep( 523, 135 ); // レ# Beep( 554, 128 ); // ミ Beep( 587, 120 ); // ファ Beep( 622, 114 ); // ファ# Beep( 659, 107 ); // ソ Beep( 698, 101 ); // ソ# Beep( 740, 95 ); // ラ Beep( 784, 90 ); // ラ# Beep( 830, 85 ); // シ Beep( 880, 80 ); // ド UNREFERENCED_PARAMETER( hInstance ); UNREFERENCED_PARAMETER( hPrevInstance ); UNREFERENCED_PARAMETER( lpCmdLine ); UNREFERENCED_PARAMETER( nCmdShow ); return 0; }