はじめに
今回は「音」について書いていこうと思います。
当社の自社製品に直接かかわる部分ではなく、得意分野でも、なじみがあるわけでもないですが、以前、展示会で展示するデモを作成するなかで「音を鳴らせないか」という相談があったので、その時の話を元に書いていきます。
音とは
音は空気中を伝わる波です。
波と言われてもイメージしにくいと思いますが、筆者は空気中を伝わる密度と理解しています。
例として太鼓が分かりやすいかもしれません。太鼓は叩くと表面に張られている膜が振動します。振動するということは膜が前後に動くということです。膜が前後に動くと、膜の周辺の空気が圧縮されたり、伸張されたりを繰り返します。これが空気中を伝わり人間の耳の鼓膜を振動させて音が聞こえます。
音の表現方法
音について調べた方なら目にしたことがあると思いますが下図のような波形で表現することがあります。
これは、先ほどの太鼓をイメージするとわかりやすいかもしれません。横軸が時間で縦軸が太鼓の膜の振幅になります。振幅の中心が音の鳴っていないときの膜の位置になります。
振幅が大きいほど音量が大きくなります。
音は波なのである一瞬だけを見ると振幅のある一点(膜の位置)のみの情報になります。

コンピュータでの音の鳴らし方
コンピュータを使用して音を鳴らす場合、スピーカを使うことになります。仕組みとしては太鼓とよく似ていて、スピーカ表面の膜を磁石と電磁石で振幅させます。
スピーカに入力する電流を高くすれば振幅が大きくなり音量が上がります。電流の周波数を変えることで音の高さを変えることができます。これを高速に変化させることで様々な音を出せます。

周波数について
磁石と電磁石の仕組みで音はならせますが、そこには膜を振動させるための周波数が必要になります。また、いくら音を鳴らせても人に聞こえなければ意味がありません。そのため、周波数というものは重要な要素になります。
人間の可聴範囲は、20Hz~20KHz(20,000Hz)と言われています。個人差や加齢で差は出ますが概ねこの範囲になります。この範囲を超えると人には聞こえない音になります。(加齢で高周波数帯が聞こえなくなることを利用してモスキートーンなどを利用した機器もあります。ご興味があれば調べてみてください。)
コンピュータで音を鳴らした時の話
デモ作成時は「ある条件を満たしたときに何か音が鳴れば良い」とのことでしたので、単音を鳴らすことを考えました。
音としては「レ」の音を鳴らすことにしました。「レ」の周波数は約293.66Hzだったので、この周波数になるSINカーブの波形データをROMにテーブルとして持たせ、条件成立時にコントローラに入力することで音を鳴らすことができました。
まとめ
いかがでしたでしょうか。
音についてはまだまだ奥が深く、サンプリングレートやハイレゾ(High-Resolution)などの話もありますし、音のデータの形式としても、WAVやMP3など多岐にわたります。質の悪いデータを高品質のデータに変換するようなソフトまで出てきています。音にかかわる機材も多くのものがあり値も張るものから気軽に購入できるものまで多くの機材があります。
また機会があれば音に関して書いてみようと思います。
