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);
}

何の曲かは、聞いてからのお楽しみです。クオリティに関しては目を瞑ってください。

最後に

Beep音でちょっとしたDTMを楽しみましょう!