@@ -186,7 +186,6 @@ class AudioSource {
186186 bool _i2sMaster; // when false, ESP32 will be in I2S SLAVE mode (for devices that only operate in MASTER mode). Only works in newer IDF >= 4.4.x
187187 float _sampleScale; // pre-scaling factor for I2S samples
188188 I2S_datatype newSampleBuffer[I2S_SAMPLES_MAX+4 ] = { 0 }; // global buffer for i2s_read
189- I2S_datatype newSampleBuffer4x[(I2S_SAMPLES_MAX*4 )+4 ] = { 0 }; // global buffer for i2s_read
190189};
191190
192191/* Basic I2S microphone source
@@ -195,12 +194,12 @@ class AudioSource {
195194*/
196195class I2SSource : public AudioSource {
197196 public:
198- I2SSource (SRate_t sampleRate, int blockSize, float sampleScale = 1 .0f , bool i2sMaster=false ) :
197+ I2SSource (SRate_t sampleRate, int blockSize, float sampleScale = 1 .0f , bool i2sMaster=true ) :
199198 AudioSource (sampleRate, blockSize, sampleScale, i2sMaster) {
200199 _config = {
201200 .mode = i2sMaster ? i2s_mode_t (I2S_MODE_MASTER | I2S_MODE_RX) : i2s_mode_t (I2S_MODE_SLAVE | I2S_MODE_RX),
202- .sample_rate = _sampleRate, // slave mode: may help to set this to 96000, as the other side (master) controls sample rates
203- .bits_per_sample = I2S_SAMPLE_RESOLUTION,
201+ .sample_rate = _sampleRate,
202+ .bits_per_sample = I2S_SAMPLE_RESOLUTION, // slave mode: may help to set this to 96000, as the other side (master) controls sample rates
204203 .channel_format = I2S_MIC_CHANNEL,
205204#if ESP_IDF_VERSION >= ESP_IDF_VERSION_VAL(4, 2, 0)
206205 .communication_format = i2s_comm_format_t (I2S_COMM_FORMAT_STAND_I2S),
@@ -395,8 +394,6 @@ class I2SSource : public AudioSource {
395394
396395 memset (buffer, 0 , sizeof (float ) * num_samples); // clear output buffer
397396 I2S_datatype *newSamples = newSampleBuffer; // use global input buffer
398- I2S_datatype *newSamples_buff = newSampleBuffer4x; // use oversampling global input buffer
399-
400397 if (num_samples > I2S_SAMPLES_MAX) num_samples = I2S_SAMPLES_MAX; // protect the buffer from overflow
401398
402399 err = i2s_read (AR_I2S_PORT, (void *)newSamples, num_samples * sizeof (I2S_datatype), &bytes_read, portMAX_DELAY);
@@ -411,15 +408,6 @@ class I2SSource : public AudioSource {
411408 return ;
412409 }
413410
414- if (_sampleRate == 96000 ) {
415- int current = 0 ;
416- for (int i = 0 ; i < 2048 ; i += 4 ) {
417- newSamples[current] = newSamples_buff[i];
418- current++;
419- }
420- num_samples /= 4 ; // back to 512 samples
421- }
422-
423411 // Store samples in sample buffer and update DC offset
424412 for (int i = 0 ; i < num_samples; i++) {
425413
0 commit comments