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という前提で書かれて