|
- /*
- ZynAddSubFX - a software synthesizer
-
- Resonance.h - Resonance
- Copyright (C) 2002-2005 Nasca Octavian Paul
- Author: Nasca Octavian Paul
-
- This program is free software; you can redistribute it and/or
- modify it under the terms of the GNU General Public License
- as published by the Free Software Foundation; either version 2
- of the License, or (at your option) any later version.
- */
- #ifndef RESONANCE_H
- #define RESONANCE_H
-
- #include "../globals.h"
- #include "../Misc/Util.h"
- #include "../Misc/XMLwrapper.h"
- #include "../Params/Presets.h"
- #include "../DSP/FFTwrapper.h"
-
- #define N_RES_POINTS 256
-
- class Resonance:public Presets
- {
- public:
- Resonance(void);
- ~Resonance(void);
- void setpoint(int n, unsigned char p);
- void applyres(int n, fft_t *fftdata, float freq) const;
- void smooth(void);
- void interpolatepeaks(int type);
- void randomize(int type);
- void zero(void);
-
- void paste(Resonance &r);
- void add2XML(XMLwrapper& xml);
- void defaults(void);
- void getfromXML(XMLwrapper& xml);
-
-
- //TODO remove unused methods
- float getfreqpos(float freq) const;
- float getfreqx(float x) const;
- float getfreqresponse(float freq) const;
- float getcenterfreq(void) const;
- float getoctavesfreq(void) const;
- void sendcontroller(MidiControllers ctl, float par);
-
- //parameters
- unsigned char Penabled; //if the ressonance is enabled
- unsigned char Prespoints[N_RES_POINTS]; //how many points define the resonance function
- unsigned char PmaxdB; //how many dB the signal may be amplified
- unsigned char Pcenterfreq, Poctavesfreq; //the center frequency of the res. func., and the number of octaves
- unsigned char Pprotectthefundamental; //the fundamental (1-st harmonic) is not damped, even it resonance function is low
-
- //controllers
- float ctlcenter; //center frequency(relative)
- float ctlbw; //bandwidth(relative)
-
- static const rtosc::Ports ports;
- };
-
- #endif
|