Web Audio API を使用した Game Boy サウンドの再現:フーリエ級数 vs. ウェーブシェイパー

2025-04-07

ウェブベースの Game Boy 風音楽トラッカーを作成中に、作者は Game Boy の象徴的な矩形波サウンドを忠実に再現するという課題に直面しました。Game Boy のパルスチャネルは可変デューティサイクルをサポートしていましたが、Web Audio API の OscillatorNode は 50% デューティサイクルの矩形波しか提供しません。この記事では、2 つの解決策を探ります。フーリエ級数を使用してカスタム波形を生成する方法と、WaveShaperNode を使用してのこぎり波を整形する方法です。フーリエ級数のアプローチは精度が高いですが、計算コストが高くなります。WaveShaperNode の方法は簡単ですが、ノイズが発生する可能性があります。最終的に作者は、そのシンプルさと、より本格的な Game Boy サウンドを生成できることから、WaveShaperNode の方法を好みました。