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)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy