@@ -307,7 +307,7 @@ audioio_get_buffer_result_t audiodelays_echo_get_buffer(audiodelays_echo_obj_t *
307
307
for (uint32_t i = 0 ; i < length ; i ++ ) {
308
308
int16_t echo , word = 0 ;
309
309
uint32_t next_buffer_pos = 0 ;
310
- uint32_t echo_buffer_offset = echo_buf_len * (self -> freq_shift && (channel == 1 || (i % self -> base .channel_count ) == 1 ));
310
+ uint32_t echo_buffer_offset = echo_buf_len * (self -> freq_shift && (( single_channel_output && channel == 1 ) || (! single_channel_output && ( i % self -> base .channel_count ) == 1 ) ));
311
311
312
312
if (self -> freq_shift ) {
313
313
echo = echo_buffer [(echo_buffer_pos >> 8 ) + echo_buffer_offset ];
@@ -337,7 +337,7 @@ audioio_get_buffer_result_t audiodelays_echo_get_buffer(audiodelays_echo_obj_t *
337
337
}
338
338
}
339
339
340
- if (self -> freq_shift && (single_channel_output || echo_buffer_offset )) {
340
+ if (self -> freq_shift && (self -> base . channel_count == 1 || single_channel_output || (! single_channel_output && ( i % self -> base . channel_count ) == 1 ) )) {
341
341
echo_buffer_pos = next_buffer_pos % (echo_buf_len << 8 );
342
342
} else if (!self -> freq_shift && echo_buffer_pos >= echo_buf_len ) {
343
343
echo_buffer_pos = 0 ;
@@ -375,7 +375,7 @@ audioio_get_buffer_result_t audiodelays_echo_get_buffer(audiodelays_echo_obj_t *
375
375
376
376
int32_t echo , word = 0 ;
377
377
uint32_t next_buffer_pos = 0 ;
378
- uint32_t echo_buffer_offset = echo_buf_len * (self -> freq_shift && (channel == 1 || (i % self -> base .channel_count ) == 1 ));
378
+ uint32_t echo_buffer_offset = echo_buf_len * (self -> freq_shift && (( single_channel_output && channel == 1 ) || (! single_channel_output && ( i % self -> base .channel_count ) == 1 ) ));
379
379
380
380
if (self -> freq_shift ) {
381
381
echo = echo_buffer [(echo_buffer_pos >> 8 ) + echo_buffer_offset ];
@@ -428,7 +428,7 @@ audioio_get_buffer_result_t audiodelays_echo_get_buffer(audiodelays_echo_obj_t *
428
428
}
429
429
}
430
430
431
- if (self -> freq_shift && (single_channel_output || echo_buffer_offset )) {
431
+ if (self -> freq_shift && (self -> base . channel_count == 1 || single_channel_output || (! single_channel_output && ( i % self -> base . channel_count ) == 1 ) )) {
432
432
echo_buffer_pos = next_buffer_pos % (echo_buf_len << 8 );
433
433
} else if (!self -> freq_shift && echo_buffer_pos >= echo_buf_len ) {
434
434
echo_buffer_pos = 0 ;
0 commit comments