Files
CelloEffects/Appli/Core/Inc/fx_echo.h
T
2026-09-05 09:18:47 +02:00

37 lines
789 B
C

#ifndef FX_ECHO_H
#define FX_ECHO_H
#include <stdbool.h>
#include <stdint.h>
#ifdef __cplusplus
extern "C" {
#endif
#define FX_ECHO_SAMPLE_RATE 48000U
#define FX_ECHO_MAX_DELAY_MS 1000U
#define FX_ECHO_BUFFER_SIZE (FX_ECHO_SAMPLE_RATE * FX_ECHO_MAX_DELAY_MS / 1000U)
typedef struct
{
bool enabled;
float delay_ms; /* 0 a FX_ECHO_MAX_DELAY_MS */
float feedback; /* 0.0 a <1.0 */
float mix; /* 0.0 (sec) a 1.0 (100% repetitions) */
} FxEchoParams;
typedef struct
{
int16_t buffer[FX_ECHO_BUFFER_SIZE];
uint32_t write_idx;
} FxEchoState;
void FxEcho_Init(FxEchoState *state, FxEchoParams *params);
float FxEcho_Process(FxEchoState *state, const FxEchoParams *params, float input);
#ifdef __cplusplus
}
#endif
#endif /* FX_ECHO_H */