Genesis-Plus-GX/source/sound/eq.h

68 lines
1.6 KiB
C
Raw Normal View History

/*---------------------------------------------------------------------------
2011-07-14 00:49:52 +02:00
//
// 3 Band EQ :)
//
// EQ.H - Header file for 3 band EQ
//
// (c) Neil C / Etanza Systems / 2K6
//
// Shouts / Loves / Moans = etanza at lycos dot co dot uk
//
// This work is hereby placed in the public domain for all purposes, including
// use in commercial applications.
//
// The author assumes NO RESPONSIBILITY for any problems caused by the use of
// this software.
//
//----------------------------------------------------------------------------*/
2011-07-14 00:49:52 +02:00
#ifndef __EQ3BAND__
#define __EQ3BAND__
/* ------------
2011-07-14 00:49:52 +02:00
//| Structures |
// ------------*/
2011-07-14 00:49:52 +02:00
typedef struct {
/* Filter #1 (Low band) */
2011-07-14 00:49:52 +02:00
double lf; /* Frequency */
double f1p0; /* Poles ... */
2011-07-14 00:49:52 +02:00
double f1p1;
double f1p2;
double f1p3;
/* Filter #2 (High band) */
2011-07-14 00:49:52 +02:00
double hf; /* Frequency */
double f2p0; /* Poles ... */
2011-07-14 00:49:52 +02:00
double f2p1;
double f2p2;
double f2p3;
/* Sample history buffer */
2011-07-14 00:49:52 +02:00
double sdm1; /* Sample data minus 1 */
double sdm2; /* 2 */
double sdm3; /* 3 */
2011-07-14 00:49:52 +02:00
/* Gain Controls */
2011-07-14 00:49:52 +02:00
double lg; /* low gain */
double mg; /* mid gain */
double hg; /* high gain */
2011-07-14 00:49:52 +02:00
} EQSTATE;
/* ---------
2011-07-14 00:49:52 +02:00
//| Exports |
// ---------*/
2011-07-14 00:49:52 +02:00
extern void init_3band_state(EQSTATE * es, int lowfreq, int highfreq,
int mixfreq);
extern double do_3band(EQSTATE * es, int sample);
#endif /* #ifndef __EQ3BAND__ */