I2Sのレイテンシーをチェックした.楽器用エフェクタの場合レイテンシーが大きいと演奏に支障をきたすなど問題が大きい.いろんな意見をいただいた結果 2ms 以下を目標としている.
一方,SDR受信機単独なら数10msのレイテンシーは問題ないだろう.トランシーバーの場合は送受切り替えがあるのでレイテンシーが大きいのはまずいがどの辺が限界かよくわからない.CWの高速短点よりは十分小さい方がよいのかもしれない.
ちなみに Teensy 4.0で同様のシステムを組んだ場合は, fs=48kHz,BLOCK_SAMPLES=16 のとき 1.88ms だった.
ESP32-S3 では fs=48kHz,BLOCK_SAMPLES=64 としているが,このとき下図のとおりレイテンシーは 32.6ms で 2ms よりはるかに大きくなってしまった(信号周波数は1kHz).

そこで BLOCK_SAMPLES=4 とし DMAバッファ数も限界まで減らた ( .dma_buf_count = 2 )ところ,下図のとおり 1.86ms となり 2ms を切ることができた.
この値は Teesy4.0ではBLOCK_SAMPLES=16で実現できたのだが… ESP32-S3 では 4ブロックごとに処理しているようなので実質 BLOCK_SAMPLES=4 の 4倍で 16 ということか?

BLOCK_SAMPLES が少ないと I2S 処理のオーバーヘッドの割合が増し,信号処理量の限界が下がる.ちなみにこの状態だと IIR Biquad x 20個,512Tap FIR x 2個 は処理しきれない.400Tap FIR x 2 くらいまで減らせばOKだった.