Beep音で遊ぼう
はじめに
これは、SLP KBIT Advent Calendar 2014 の21日目の記事です。
Beep音とは
ビープ音は、単一の波形で構成される音のことであり、コンピュータにおいて最も原始的な音声出力と位置づけられています。
電源投入時や、稼働中にエラーが発生した場合などに発せられる音のことです。
C言語でBeep音を鳴らす
C言語を使ってBeep音を鳴らすには、Beep関数を使います。
Beep関数を使用するためには、"windows.h"というヘッダファイルをインクルードする必要があります。
Beep(音の周波数〔Hz〕, 音の長さ〔ms〕);
このように記述することで、簡単にBeepを音を鳴らすことが出来ます。
まずは、簡単な時報を鳴らすプログラムを書いてみます。
#include <stdio.h> #include <windows.h> void main() { printf("時報\n"); Beep(440, 950); Beep(440, 950); Beep(440, 950); Beep(880, 1200); }
曲を演奏する
次は、Beep音で音楽を演奏してみたいと思います。
今回は、「ラ」を440Hzとし、ピタゴラス音律を採用します。
ピタゴラス音律についての説明は割愛するので、興味のある人は調べてみてください。
#include <stdio.h> #include <windows.h> void main( ) { Beep(330.0, 450); Beep(330.0, 450); Beep(330.0, 900); Beep(330.0, 450); Beep(330.0, 450); Beep(330.0, 900); Beep(330.0, 450); Beep(391.0, 450); Beep(260.7, 650); Beep(293.3, 200); Beep(330.0, 1000); Sleep(500); Beep(347.7, 450); Beep(347.7, 450); Beep(347.7, 650); Beep(347.7, 200); Beep(347.7, 450); Beep(330.0, 450); Beep(330.0, 450); Beep(330.0, 450); Beep(330.0, 450); Beep(293.3, 450); Beep(293.3, 450); Beep(260.7, 450); Beep(293.3, 800); Beep(391.1, 900); Sleep(150); Beep(330.0, 450); Beep(330.0, 450); Beep(330.0, 900); Beep(330.0, 450); Beep(330.0, 450); Beep(330.0, 900); Beep(330.0, 450); Beep(391.0, 450); Beep(260.7, 650); Beep(293.3, 200); Beep(330.0, 1000); Sleep(500); Beep(347.7, 450); Beep(347.7, 450); Beep(347.7, 650); Beep(347.7, 200); Beep(347.7, 450); Beep(330.0, 450); Beep(330.0, 450); Beep(330.0, 450); Beep(391.1, 450); Beep(391.1, 450); Beep(347.7, 450); Beep(293.3, 450); Beep(260.7, 900); }
何の曲かは、聞いてからのお楽しみです。クオリティに関しては目を瞑ってください。