FreeBSD QandA 655
Q. IBM-PC/AT 互換機のベル(ビープ音)の音量は変化させることができるの
   でしょうか。
A. 原理的には不可能ではありませんが、現在の FreeBSD ではできません。工
   作の得意な人はケースのスピーカに直列に可変抵抗を入れるなどして対応して
   ください。
   ソフトウエア的にできることはビープ音の周波数と音の鳴る持続時間を変更す
   ることです。これはコンソールの場合と X上では設定の仕方が異なります。
   (1)コンソール上での設定
   kbdcontrol コマンド、または「\033[=<pitch>;<duration>B」のエスケープ
   シーケンスをコンソールに出力することで変更します。
      kbdcontrol -b <duration>.<pitch>
   または、シェルから例えば、
      echo "\033[=<pitch>;<duration>B"
   ここで <pitch> と <duration> は整数値で次のような意味となります。
     音の周波数 = 1193182 / <pitch> (Hz)
     持続時間 = <duration> * 0.1 (秒)
   初期値はそれぞれ 1491Hz(pitch=800), 0.05秒(duration=1/2)となっています。
   このため持続時間は初期値より短くできません。なお、
      kbdcontrol -b normal
   とすると、duration=1 pitch=800 をセットしたことになります。
   (2) X 上での設定
   xset コマンドを使います。詳しくは man xset で調べて下さい。現在の
   XFree86(3.3.2) では
      xset b <Xvol> <Xpitch> <Xduration>
   で、<Xvol> は音量(%)となっていますが、実際は 50%の時に 1になるよう
   に <Xduration> をスケールします。また、コンソールの時とは違って
   <Xpitch> は周波数そのもので、<Xduration> はミリ秒単位の持続時間です。
   従って、例えばコンソールの初期値と同じベル音を出すには、
      xset b 50 1491 50
   とします。なお、XFree86(3.3.2)での初期値は
      xset b 50 400 100
   で、これはコンソールでの設定では
      kbdcontrol -b 1.2983   または   echo "\033[=2983;1B"
   としたことに対応します。
間違い・追加情報を見付けた場合は、
修正案の投稿のしかた を読んだ上で、
QandA@jp.FreeBSD.org まで
お知らせください。