Lazy Diary @ Hatena Blog

PowerShell / Java / miscellaneous things about software development, Tips & Gochas. CC BY-SA 4.0/Apache License 2.0

音声出力デバイスによるビープ音出力の違い

qiita.com

PowerShell[Console]::Beep()でビープ音を出そうとした際、自分のPCではBIOSによるビープ音出力ではなく通常の音声デバイスによるビープ音出力が行われる。

そのため、PC本体ではなくその時に使用している音声デバイスからビープ音が出るわけだが、この際に音声出力デバイスの種類・接続方法によってビープ音の出力のされかたが異なるという気付きを得たのでメモしておく。

PC本体内蔵の出力デバイスRealtek(R) Audio)

問題なくビープ音が出力される。

Bluetooth aptX(Mpow M5)

  • およそ750ms以下のビープ音は出力されない。
  • 760msを指定すると一瞬だけ音が聴こえる。
  • ビープ音が出力される前の約750msのあいだはホワイトノイズが聴こえる。
  • 上記の記事のように[Console]::Beep()で500msのビープ音を連続して出力すると、ときどき(25回に1回くらい?)一瞬だけ音が聴こえることがある。
  • 一定時間以下の長さの音は出力されない。

そのため、単に音がズレて聴こえるのではなく、「Bluetoothバイスが無音状態から音声出力を始めようとしたけれど、音を出す前にPC側で出している音が終了してしまう」という挙動に見える。

LIGHTSPEEDLogicool G435 Wireless Gaming Headset)

  • およそ340ms以下のビープ音は出力されない。
  • 350msを指定すると、ホワイトノイズの前触れなしに一瞬だけ音が聴こえる。
  • 340ms以下を指定した場合、一瞬だけホワイトノイズが聴こえる。
  • 上記の記事のように[Console]::Beep()で500msのビープ音を連続して出力すると、最初のドの音は聴こえないが、以降の250msのビープ音は一瞬だけ聴こえる。125msのビープ音は聴こえたり聴こえなかったりする。
  • 一定時間以下の長さの音は出力されない。

そのため、単に音がズレて聴こえるのではなく、「LIGHTSPEEDバイスがスリープ状態から音声出力を始めるのに数百msかかる」「LIGHTSPEEDバイスが音声出力を始めようとしたけれど、音を出す前にPC側で出している音が終了してしまう」「そのため、最初の1音は出力されないが、スリープに入らず連続して音を出せば音が出る」という挙動に見える。