9 #include "MemoryLoop.h"
45 FM(
unsigned int operators = 4 );
57 void setRatio(
unsigned int waveIndex, StkFloat ratio );
60 void setGain(
unsigned int waveIndex, StkFloat gain );
69 void setControl1( StkFloat cVal ) { control1_ = cVal * 2.0; };
72 void setControl2( StkFloat cVal ) { control2_ = cVal * 2.0; };
87 virtual StkFloat
tick(
unsigned int ) = 0;
101 std::vector<ADSR *> adsr_;
102 std::vector<FileLoop *> waves_;
105 unsigned int nOperators_;
106 StkFloat baseFrequency_;
107 std::vector<StkFloat> ratios_;
108 std::vector<StkFloat> gains_;
112 StkFloat fmGains_[100];
113 StkFloat fmSusLevels_[16];
114 StkFloat fmAttTimes_[32];
STK abstract FM synthesis base class.
Definition: FM.h:39
void setControl1(StkFloat cVal)
Set the value of control1.
Definition: FM.h:69
void loadWaves(const char **filenames)
Load the rawwave filenames in waves.
void setModulationDepth(StkFloat mDepth)
Set the modulation depth.
Definition: FM.h:66
virtual void controlChange(int number, StkFloat value)
Perform the control change specified by number and value (0.0 - 128.0).
void setModulationSpeed(StkFloat mSpeed)
Set the modulation speed in Hz.
Definition: FM.h:63
void noteOff(StkFloat amplitude)
Stop a note with the given amplitude (speed of decay).
void setRatio(unsigned int waveIndex, StkFloat ratio)
Set the frequency ratio for the specified wave.
void setGain(unsigned int waveIndex, StkFloat gain)
Set the gain for the specified wave.
void keyOff(void)
Start envelopes toward "off" targets.
virtual void setFrequency(StkFloat frequency)
Set instrument parameters for a particular frequency.
virtual StkFloat tick(unsigned int)=0
Compute and return one output sample.
virtual StkFrames & tick(StkFrames &frames, unsigned int channel=0)=0
Fill a channel of the StkFrames object with computed outputs.
virtual ~FM(void)
Class destructor.
void setControl2(StkFloat cVal)
Set the value of control1.
Definition: FM.h:72
FM(unsigned int operators=4)
Class constructor, taking the number of wave/envelope operators to control.
void keyOn(void)
Start envelopes toward "on" targets.
STK instrument abstract base class.
Definition: Instrmnt.h:20
STK sinusoid oscillator class.
Definition: SineWave.h:26
void setFrequency(StkFloat frequency)
Set the data interpolation rate based on a looping frequency.
An STK class to handle vectorized audio data.
Definition: Stk.h:287
STK two-zero filter class.
Definition: TwoZero.h:21
The STK namespace.
Definition: ADSR.h:8