正式な定義は知りませんでしたが、パソコン本体から「ビッ」っていう音がなるのが、なんかダサかっこいいなという思い出があったので、久しぶりに聞いてみたくなりました。
ビープ音とは
エラーや状態異常を知らせる音です。
OSやアプリケーション、BIOSなど発信元は様々です。
また、ベンダーによりその音や長さ、回数が異なりそれぞれに意味があるとのことです。
C言語で鳴らしてみる
簡単に
そもそもビープ音の存在を認知したのはprintfのリファレンスでした。
\n
や\t
など様々ある中で\a
でビープ音が鳴りますという説明は当時衝撃でした。
XP時代だっと思いますが、なんとなくエラー音っぽいのが出てたのは覚えています。
具体的には以下
#include <stdio.h>
int main()
{
printf("\a");
return 0;
}
Windows10 VisualStudio2022で実装して、鳴る音は以下
Windows 10 Error Sound
これじゃない
こんなおしゃれな通知音を効きたかったわけではないのです。
もっとエラーっぽい、聞いたら焦るような音を出したかったのです。
PowerShellで鳴らしてみる
手っ取り早く聞きたかったため、検索トップに出てきたPowerShellを使ってみます。
[console]::beep()
「ピ」という聴力検査のような音が鳴りました。かなり求めていた音でしたが、まだエラー感は薄いです。
ちなみにlinuxでは以下で音が鳴ります
echo -e "\a"
ubuntuで動かしたところ「ポン」という音が出ました。
カスタマイズする
音の長さと音程が気に入らないのでカスタマイズ方法を探しました。
[System.Console]::Beep
を使用することで、周波数(Hz)と持続時間(ミリ秒)を指定できるようです。
スピーカーからですが、一応求めていたエラー音を出すことができました。
鳴らしっぱなしにするとより深刻さを味わえます。
また、周波数だとピンとこないかもしれませんが、一般的な音階と紐づけることで、演奏が可能です。
1節くらい遊びで作ってみてください。
[System.Console]::Beep(1000, 500) # 周波数 1000Hz、持続時間 500ms
音階の参考は以下
ドレミの振動数!ピアノ88鍵全音域の周波数一覧表
TODO
- ネイティブアプリから簡単に出す方法
- BIOSからより深刻さを出す方法
以上です。