keywords: ESP32, サウンド, DAC, I2S ■概要 ESP32の内蔵DACから音を出すとき、前後のプチプチというノイズが気になってので、これを防ぐ方法を検討してみました。 ■クリックノイズの原因 ESP-IDFのI2Sドライバは無音時の値を0としている。 内蔵DACにおける値0は負の最大値である。 通常I2Sの16bitデータは符号付き(無音時の値が0、最小が-32768、最大が32767)で表現します(図1-A)。ESP-IDFのI2Sドライバも、その前提で書かれています。 しかし、内蔵DACは0Vから3.3Vの範囲を16bitの符号無し整数(0から65535)で指定します。 そのため、音声信号では無音時の値を32768、負の最大値を0、正の最大値を65535になるように変換して与える必要があります。 ESP-IDFのI2Sドライバは無音時の値が0という前提で書かれて
![ESP32でサウンド出力時のクリックノイズ対策(I2S+内蔵DAC) | N.Yamazaki's blog](https://cdn-ak-scissors.b.st-hatena.com/image/square/dc2d1691b6ed928d956d864bc51a069d19df7282/height=288;version=1;width=512/http%3A%2F%2Fimg-cdn.jg.jugem.jp%2Fd07%2F1681818%2F20180328_2290792.png)