ajout effets audio

This commit is contained in:
thomas committed 2026-09-05 08:49:49 +02:00
1 parent f8a79b08bf
commit 44a43828f1
14 files changed
+541 -6

No files matched your search

+44
View File
@@ -0,0 +1,44 @@
#ifndef FX_EQUALIZER_H
#define FX_EQUALIZER_H
#include <stdbool.h>
#define FX_EQ_NUM_BANDS 10U
typedef struct
{
float freq_hz; /* frequence centrale de la bande */
float gain_db; /* -24.0 a +24.0 dB */
float q; /* facteur de qualite, typiquement 0.5 a 5.0 */
} FxEqBand;
typedef struct
{
bool enabled;
FxEqBand bands[FX_EQ_NUM_BANDS];
} FxEqualizerParams;
typedef struct
{
/* coefficients biquad mis en cache, recalcules seulement si les parametres changent */
float b0, b1, b2, a1, a2;
/* dernieres valeurs de parametres utilisees pour calculer les coefficients ci-dessus */
float last_freq_hz;
float last_gain_db;
float last_q;
} FxEqBandState;
typedef struct
{
FxEqBandState band_state[FX_EQ_NUM_BANDS];
/* etat du filtre (direct form 1), par bande */
float x1[FX_EQ_NUM_BANDS];
float x2[FX_EQ_NUM_BANDS];
float y1[FX_EQ_NUM_BANDS];
float y2[FX_EQ_NUM_BANDS];
} FxEqualizerState;
void FxEqualizer_Init(FxEqualizerState *state, FxEqualizerParams *params);
float FxEqualizer_Process(FxEqualizerState *state, const FxEqualizerParams *params, float input);
#endif /* FX_EQUALIZER_H */