Skip to content

Commit feee74a

Browse files
committed
Improve right channel logic.
1 parent 57391fa commit feee74a

File tree

1 file changed

+4
-4
lines changed
  • shared-module/audiodelays

1 file changed

+4
-4
lines changed

shared-module/audiodelays/Echo.c

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -307,7 +307,7 @@ audioio_get_buffer_result_t audiodelays_echo_get_buffer(audiodelays_echo_obj_t *
307307
for (uint32_t i = 0; i < length; i++) {
308308
int16_t echo, word = 0;
309309
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)));
311311

312312
if (self->freq_shift) {
313313
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 *
337337
}
338338
}
339339

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))) {
341341
echo_buffer_pos = next_buffer_pos % (echo_buf_len << 8);
342342
} else if (!self->freq_shift && echo_buffer_pos >= echo_buf_len) {
343343
echo_buffer_pos = 0;
@@ -375,7 +375,7 @@ audioio_get_buffer_result_t audiodelays_echo_get_buffer(audiodelays_echo_obj_t *
375375

376376
int32_t echo, word = 0;
377377
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)));
379379

380380
if (self->freq_shift) {
381381
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 *
428428
}
429429
}
430430

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))) {
432432
echo_buffer_pos = next_buffer_pos % (echo_buf_len << 8);
433433
} else if (!self->freq_shift && echo_buffer_pos >= echo_buf_len) {
434434
echo_buffer_pos = 0;

0 commit comments

Comments
 (0)