From 4364b8085ab25a233306b25dc07655d1f7ea98fc Mon Sep 17 00:00:00 2001 From: Dan Ellis Date: Fri, 6 Sep 2024 00:00:12 -0400 Subject: [PATCH] Echo: Fix up defaults, normalize filter coef. --- src/amy.c | 33 +++++++++++++++++++++------------ src/amy_config.h | 5 +++-- src/delay.c | 8 ++++---- src/delay.h | 2 +- tests/ref/TestEcho.wav | Bin 176172 -> 176172 bytes 5 files changed, 29 insertions(+), 19 deletions(-) diff --git a/src/amy.c b/src/amy.c index 942f492..6f6e82b 100644 --- a/src/amy.c +++ b/src/amy.c @@ -152,25 +152,31 @@ typedef struct echo_config { uint32_t delay_samples; // Current delay, quantized to samples. uint32_t max_delay_samples; // Maximum delay, i.e. size of allocated delay line. SAMPLE feedback; // Gain applied when feeding back output to input. - SAMPLE filter_coef; // Echo is filtered by a single real zero, this is its location. -1 = max higpass, 1 = max lowpass. + SAMPLE filter_coef0; // Echo is filtered by a two-point normalize FIR, these are the coefficients. + SAMPLE filter_coef1; } echo_config_t; -echo_config_t echo = {ECHO_DEFAULT_LEVEL, ECHO_DEFAULT_DELAY, ECHO_DEFAULT_MAX_DELAY, ECHO_DEFAULT_FEEDBACK, ECHO_DEFAULT_FILTER_COEF}; - -SAMPLE *echo_delays[AMY_NCHANS]; - uint32_t enclosing_power_of_2(uint32_t n) { uint32_t result = 1; while (result < n) result <<= 1; return result; } +echo_config_t echo = {F2S(ECHO_DEFAULT_LEVEL), + (uint32_t)(ECHO_DEFAULT_DELAY_MS * 1000.f / AMY_SAMPLE_RATE), + 65536, // enclosing_power_of_2((uint32_t)(ECHO_DEFAULT_MAX_DELAY_MS * 1000.f / AMY_SAMPLE_RATE)), + F2S(ECHO_DEFAULT_FEEDBACK), + F2S(1.f), F2S(0)}; // Don't attempt to inline the mapping from FILTER_COEF to the two params. + +SAMPLE *echo_delays[AMY_NCHANS]; + void config_echo(float level, float delay_ms, float max_delay_ms, float feedback, float filter_coef) { - uint32_t delay_samples = (uint16_t)(delay_ms / 1000.f * AMY_SAMPLE_RATE); + uint32_t delay_samples = (uint32_t)(delay_ms / 1000.f * AMY_SAMPLE_RATE); + //fprintf(stderr, "config_echo: delay_ms=%.3f max_delay_ms=%.3f delay_samples=%d echo.max_delay_samples=%d\n", delay_ms, max_delay_ms, delay_samples, echo.max_delay_samples); if (level > 0) { if (echo_delay_lines[0] == NULL) { // Delay line len must be power of 2. - uint32_t max_delay_samples = enclosing_power_of_2((uint16_t)(max_delay_ms / 1000.f * AMY_SAMPLE_RATE)); + uint32_t max_delay_samples = enclosing_power_of_2((uint32_t)(max_delay_ms / 1000.f * AMY_SAMPLE_RATE)); for (int c = 0; c < AMY_NCHANS; ++c) echo_delay_lines[c] = new_delay_line(max_delay_samples, 0, DELAY_RAM_CAPS); echo.max_delay_samples = max_delay_samples; @@ -185,8 +191,11 @@ void config_echo(float level, float delay_ms, float max_delay_ms, float feedback echo.level = F2S(level); echo.delay_samples = delay_samples; echo.feedback = F2S(feedback); - echo.filter_coef = F2S(filter_coef); - //fprintf(stderr, "config_echo: delay_samples=%d level=%.3f feedback=%.3f filter_coef=%.3f\n", delay_samples, level, feedback, filter_coef); + // FIR filter is [1, filter_coef] but scale it to have peak gain of 1.0. + float filter_norm = 1.0f / (1.0f + fabs(filter_coef)); + echo.filter_coef0 = F2S(filter_norm); + echo.filter_coef1 = F2S(filter_norm * filter_coef); + //fprintf(stderr, "config_echo: delay_samples=%d level=%.3f feedback=%.3f filter_coef=%.3f fc0=%.3f fc1=%.3f\n", delay_samples, level, feedback, filter_coef, S2F(echo.filter_coef0), S2F(echo.filter_coef1)); } void dealloc_echo_delay_lines(void) { @@ -714,7 +723,7 @@ void amy_reset_oscs() { // Reset chorus oscillator etc. if (AMY_HAS_CHORUS) config_chorus(CHORUS_DEFAULT_LEVEL, CHORUS_DEFAULT_MAX_DELAY, CHORUS_DEFAULT_LFO_FREQ, CHORUS_DEFAULT_MOD_DEPTH); if (AMY_HAS_REVERB) config_reverb(REVERB_DEFAULT_LEVEL, REVERB_DEFAULT_LIVENESS, REVERB_DEFAULT_DAMPING, REVERB_DEFAULT_XOVER_HZ); - if (AMY_HAS_ECHO) config_echo(ECHO_DEFAULT_LEVEL, ECHO_DEFAULT_DELAY, ECHO_DEFAULT_MAX_DELAY, ECHO_DEFAULT_FEEDBACK, ECHO_DEFAULT_FILTER_COEF); + if (AMY_HAS_ECHO) config_echo(S2F(ECHO_DEFAULT_LEVEL), ECHO_DEFAULT_DELAY_MS, ECHO_DEFAULT_MAX_DELAY_MS, S2F(ECHO_DEFAULT_FEEDBACK), S2F(ECHO_DEFAULT_FILTER_COEF)); // Reset patches patches_reset(); } @@ -1468,7 +1477,7 @@ int16_t * amy_fill_buffer() { // Apply echo. if (echo.level > 0 && echo_delay_lines[0] != NULL ) { for (int16_t c=0; c < AMY_NCHANS; ++c) { - apply_fixed_delay(fbl[0] + c * AMY_BLOCK_SIZE, echo_delay_lines[c], echo.delay_samples, echo.level, echo.feedback, echo.filter_coef); + apply_fixed_delay(fbl[0] + c * AMY_BLOCK_SIZE, echo_delay_lines[c], echo.delay_samples, echo.level, echo.feedback, echo.filter_coef0, echo.filter_coef1); } } } @@ -1783,7 +1792,7 @@ struct event amy_parse_message(char * message) { if (AMY_IS_UNSET(echo_params[1])) echo_params[1] = (float)echo.delay_samples * 1000.f / AMY_SAMPLE_RATE; if (AMY_IS_UNSET(echo_params[2])) echo_params[2] = (float)echo.max_delay_samples * 1000.f / AMY_SAMPLE_RATE; if (AMY_IS_UNSET(echo_params[3])) echo_params[3] = S2F(echo.feedback); - if (AMY_IS_UNSET(echo_params[4])) echo_params[4] = S2F(echo.filter_coef); + if (AMY_IS_UNSET(echo_params[4])) echo_params[4] = S2F(echo.filter_coef1) / S2F(echo.filter_coef0); config_echo(echo_params[0], echo_params[1], echo_params[2], echo_params[3], echo_params[4]); } case 'N': e.latency_ms = atoi(message + start); break; diff --git a/src/amy_config.h b/src/amy_config.h index 011d6d2..8e3aa68 100644 --- a/src/amy_config.h +++ b/src/amy_config.h @@ -97,11 +97,12 @@ extern const uint16_t pcm_samples; // echo setup, Levels etc are SAMPLE (fxpoint), delays are in samples. #define ECHO_DEFAULT_LEVEL 0 -#define ECHO_DEFAULT_DELAY (AMY_SAMPLE_RATE / 2) -#define ECHO_DEFAULT_MAX_DELAY AMY_SAMPLE_RATE +#define ECHO_DEFAULT_DELAY_MS 500.f +#define ECHO_DEFAULT_MAX_DELAY_MS 1000.f #define ECHO_DEFAULT_FEEDBACK 0 #define ECHO_DEFAULT_FILTER_COEF 0 + #define DELAY_LINE_LEN 512 // 11 ms @ 44 kHz // D is how close the sample gets to the clip limit before the nonlinearity engages. diff --git a/src/delay.c b/src/delay.c index ad2b085..14bc33f 100644 --- a/src/delay.c +++ b/src/delay.c @@ -104,7 +104,7 @@ static inline SAMPLE LPF(SAMPLE samp, SAMPLE state, SAMPLE lpcoef, SAMPLE lpgain return SMULR6(SHIFTR(gain, 1), state + SMULR6(lpgain, samp - state)); } -void delay_line_in_out_fixed_delay(SAMPLE *in, SAMPLE *out, int n_samples, int delay_samples, delay_line_t *delay_line, SAMPLE mix_level, SAMPLE feedback_level, SAMPLE filter_coef) { +void delay_line_in_out_fixed_delay(SAMPLE *in, SAMPLE *out, int n_samples, int delay_samples, delay_line_t *delay_line, SAMPLE mix_level, SAMPLE feedback_level, SAMPLE filter_coef0, SAMPLE filter_coef1) { // Read and write the next n_samples from/to the delay line. // Simplified version of delay_line_in_out() that uses a fixed integer delay // for the whole block. @@ -112,7 +112,7 @@ void delay_line_in_out_fixed_delay(SAMPLE *in, SAMPLE *out, int n_samples, int d SAMPLE next_in = *in++; SAMPLE sample_1 = DEL_OUT(delay_line, 1); SAMPLE sample_0 = DEL_OUT(delay_line, 0); - SAMPLE sample = sample_0 + SMULR6(filter_coef, sample_1); + SAMPLE sample = SMULR6(filter_coef0, sample_0) + SMULR6(filter_coef1, sample_1); DEL_IN(delay_line, next_in + SMULR6(feedback_level, sample)); *out++ += MUL8_SS(mix_level, sample); // mix delayed + original. } @@ -123,8 +123,8 @@ void apply_variable_delay(SAMPLE *block, delay_line_t *delay_line, SAMPLE *delay delay_line_in_out(block, block, AMY_BLOCK_SIZE, delay_mod, delay_scale, delay_line, mix_level, feedback_level); } -void apply_fixed_delay(SAMPLE *block, delay_line_t *delay_line, uint32_t delay_samples, SAMPLE mix_level, SAMPLE feedback, SAMPLE filter_coef) { - delay_line_in_out_fixed_delay(block, block, AMY_BLOCK_SIZE, delay_samples, delay_line, mix_level, feedback, filter_coef); +void apply_fixed_delay(SAMPLE *block, delay_line_t *delay_line, uint32_t delay_samples, SAMPLE mix_level, SAMPLE feedback, SAMPLE filter_coef0, SAMPLE filter_coef1) { + delay_line_in_out_fixed_delay(block, block, AMY_BLOCK_SIZE, delay_samples, delay_line, mix_level, feedback, filter_coef0, filter_coef1); } SAMPLE f1state = 0, f2state = 0, f3state = 0, f4state = 0; diff --git a/src/delay.h b/src/delay.h index 21a7910..5d6d786 100644 --- a/src/delay.h +++ b/src/delay.h @@ -18,7 +18,7 @@ delay_line_t *new_delay_line(int len, int fixed_delay, int ram_type /* e.g. MALL void free_delay_line(delay_line_t *d); void apply_variable_delay(SAMPLE *block, delay_line_t *delay_line, SAMPLE *delay_samples, SAMPLE mod_scale, SAMPLE mix_level, SAMPLE feedback_level); -void apply_fixed_delay(SAMPLE *block, delay_line_t *delay_line, uint32_t delay_samples, SAMPLE mix_level, SAMPLE feedback, SAMPLE filter_coef); +void apply_fixed_delay(SAMPLE *block, delay_line_t *delay_line, uint32_t delay_samples, SAMPLE mix_level, SAMPLE feedback, SAMPLE filter_coef0, SAMPLE filter_coef1); void config_stereo_reverb(float a_liveness, float crossover_hz, float damping); void init_stereo_reverb(void); diff --git a/tests/ref/TestEcho.wav b/tests/ref/TestEcho.wav index f192afbc6c87fae23872468aadbeedeb78b5d84c..e8d2984b378b49672952fa03be7f2802938cb923 100644 GIT binary patch delta 49925 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