2012-01-15 20:59:13 +01:00
|
|
|
/*---------------------------------------------------------------------------
|
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.
|
|
|
|
//
|
2012-01-15 20:59:13 +01:00
|
|
|
//----------------------------------------------------------------------------*/
|
2011-07-14 00:49:52 +02:00
|
|
|
|
|
|
|
#ifndef __EQ3BAND__
|
|
|
|
#define __EQ3BAND__
|
|
|
|
|
2012-01-15 20:59:13 +01:00
|
|
|
/* ------------
|
2011-07-14 00:49:52 +02:00
|
|
|
//| Structures |
|
2012-01-15 20:59:13 +01:00
|
|
|
// ------------*/
|
2011-07-14 00:49:52 +02:00
|
|
|
|
|
|
|
typedef struct {
|
2012-01-15 20:59:13 +01:00
|
|
|
/* Filter #1 (Low band) */
|
2011-07-14 00:49:52 +02:00
|
|
|
|
2012-01-15 20:59:13 +01:00
|
|
|
double lf; /* Frequency */
|
|
|
|
double f1p0; /* Poles ... */
|
2011-07-14 00:49:52 +02:00
|
|
|
double f1p1;
|
|
|
|
double f1p2;
|
|
|
|
double f1p3;
|
|
|
|
|
2012-01-15 20:59:13 +01:00
|
|
|
/* Filter #2 (High band) */
|
2011-07-14 00:49:52 +02:00
|
|
|
|
2012-01-15 20:59:13 +01:00
|
|
|
double hf; /* Frequency */
|
|
|
|
double f2p0; /* Poles ... */
|
2011-07-14 00:49:52 +02:00
|
|
|
double f2p1;
|
|
|
|
double f2p2;
|
|
|
|
double f2p3;
|
|
|
|
|
2012-01-15 20:59:13 +01:00
|
|
|
/* Sample history buffer */
|
2011-07-14 00:49:52 +02:00
|
|
|
|
2012-01-15 20:59:13 +01:00
|
|
|
double sdm1; /* Sample data minus 1 */
|
|
|
|
double sdm2; /* 2 */
|
|
|
|
double sdm3; /* 3 */
|
2011-07-14 00:49:52 +02:00
|
|
|
|
2012-01-15 20:59:13 +01:00
|
|
|
/* Gain Controls */
|
2011-07-14 00:49:52 +02:00
|
|
|
|
2012-01-15 20:59:13 +01:00
|
|
|
double lg; /* low gain */
|
|
|
|
double mg; /* mid gain */
|
|
|
|
double hg; /* high gain */
|
2011-07-14 00:49:52 +02:00
|
|
|
|
|
|
|
} EQSTATE;
|
|
|
|
|
|
|
|
|
2012-01-15 20:59:13 +01:00
|
|
|
/* ---------
|
2011-07-14 00:49:52 +02:00
|
|
|
//| Exports |
|
2012-01-15 20:59:13 +01:00
|
|
|
// ---------*/
|
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);
|
|
|
|
|
|
|
|
|
2012-01-15 20:59:13 +01:00
|
|
|
#endif /* #ifndef __EQ3BAND__ */
|