diff --git a/usermods/audioreactive/audio_source.h b/usermods/audioreactive/audio_source.h index c2e67c2be5..27bc3743e6 100644 --- a/usermods/audioreactive/audio_source.h +++ b/usermods/audioreactive/audio_source.h @@ -97,12 +97,14 @@ #ifdef I2S_USE_RIGHT_CHANNEL #define I2S_MIC_CHANNEL I2S_CHANNEL_FMT_ONLY_RIGHT #define I2S_MIC_CHANNEL_TEXT "right channel only." +#define I2S_PDM_MIC_CHANNEL I2S_CHANNEL_FMT_ALL_RIGHT +#define I2S_PDM_MIC_CHANNEL_TEXT "right channel (ALL_RIGHT for PDM compat)." #else #define I2S_MIC_CHANNEL I2S_CHANNEL_FMT_ONLY_LEFT #define I2S_MIC_CHANNEL_TEXT "left channel only." +#define I2S_PDM_MIC_CHANNEL I2S_CHANNEL_FMT_ALL_LEFT +#define I2S_PDM_MIC_CHANNEL_TEXT "left channel (ALL_LEFT for PDM compat)." #endif -#define I2S_PDM_MIC_CHANNEL I2S_MIC_CHANNEL -#define I2S_PDM_MIC_CHANNEL_TEXT I2S_MIC_CHANNEL_TEXT #endif @@ -294,11 +296,13 @@ class I2SSource : public AudioSource { } #if ESP_IDF_VERSION >= ESP_IDF_VERSION_VAL(4, 2, 0) - err = i2s_set_clk(I2S_NUM_0, _sampleRate, I2S_SAMPLE_RESOLUTION, I2S_CHANNEL_MONO); // set bit clocks. Also takes care of MCLK routing if needed. - if (err != ESP_OK) { - DEBUGSR_PRINTF("AR: Failed to configure i2s clocks: %d\n", err); - i2s_driver_uninstall(I2S_NUM_0); // uninstall already-installed driver - return; + if (!(_config.mode & I2S_MODE_PDM)) { + err = i2s_set_clk(I2S_NUM_0, _sampleRate, I2S_SAMPLE_RESOLUTION, I2S_CHANNEL_MONO); // set bit clocks. Also takes care of MCLK routing if needed. + if (err != ESP_OK) { + DEBUGSR_PRINTF("AR: Failed to configure i2s clocks: %d\n", err); + i2s_driver_uninstall(I2S_NUM_0); // uninstall already-installed driver + return; + } } #endif _initialized = true;