238 |
public: |
public: |
239 |
virtual float Render() = 0; |
virtual float Render() = 0; |
240 |
virtual void Update(const uint16_t& ExtControlValue) = 0; |
virtual void Update(const uint16_t& ExtControlValue) = 0; |
241 |
virtual void Trigger(float Frequency, start_level_t StartLevel, uint16_t InternalDepth, uint16_t ExtControlDepth, bool FlipPhase, unsigned int SampleRate) = 0; |
virtual void Trigger(float Frequency, LFO::start_level_t StartLevel, uint16_t InternalDepth, uint16_t ExtControlDepth, bool FlipPhase, unsigned int SampleRate) = 0; |
242 |
virtual void SetPhase(float phase) = 0; |
virtual void SetPhase(float phase) = 0; |
243 |
virtual void SetFrequency(float Frequency, unsigned int SampleRate) = 0; |
virtual void SetFrequency(float Frequency, unsigned int SampleRate) = 0; |
244 |
}; |
}; |
252 |
virtual void Update(const uint16_t& ExtControlValue) { T::updateByMIDICtrlValue(ExtControlValue); } |
virtual void Update(const uint16_t& ExtControlValue) { T::updateByMIDICtrlValue(ExtControlValue); } |
253 |
|
|
254 |
virtual void Trigger ( |
virtual void Trigger ( |
255 |
float Frequency, start_level_t StartLevel, uint16_t InternalDepth, |
float Frequency, LFO::start_level_t StartLevel, uint16_t InternalDepth, |
256 |
uint16_t ExtControlDepth, bool FlipPhase, unsigned int SampleRate |
uint16_t ExtControlDepth, bool FlipPhase, unsigned int SampleRate |
257 |
) { |
) { |
258 |
T::trigger(Frequency, StartLevel, InternalDepth, ExtControlDepth, FlipPhase, SampleRate); |
T::trigger(Frequency, StartLevel, InternalDepth, ExtControlDepth, FlipPhase, SampleRate); |
320 |
protected: |
protected: |
321 |
FixedArray<AbstractLfo*> lfos; |
FixedArray<AbstractLfo*> lfos; |
322 |
LfoBase<LFOSigned> lfo0; // triangle |
LfoBase<LFOSigned> lfo0; // triangle |
323 |
LfoBase<SineLFO<range_signed> > lfo1; // sine |
LfoBase<SineLFO<LFO::range_signed> > lfo1; // sine |
324 |
LfoBase<PulseLFO<range_unsigned, 750> > lfo2; // pulse 75% |
LfoBase<PulseLFO<LFO::range_unsigned, 750> > lfo2; // pulse 75% |
325 |
LfoBase<SquareLFO<range_signed> > lfo3; // square |
LfoBase<SquareLFO<LFO::range_signed> > lfo3; // square |
326 |
LfoBase<PulseLFO<range_unsigned, 250> > lfo4; // pulse 25% |
LfoBase<PulseLFO<LFO::range_unsigned, 250> > lfo4; // pulse 25% |
327 |
LfoBase<PulseLFO<range_unsigned, 125> > lfo5; // pulse 12,5% |
LfoBase<PulseLFO<LFO::range_unsigned, 125> > lfo5; // pulse 12,5% |
328 |
LfoBase<SawLFO<range_unsigned, true> > lfo6; // saw up |
LfoBase<SawLFO<LFO::range_unsigned, true> > lfo6; // saw up |
329 |
LfoBase<SawLFO<range_unsigned, false> > lfo7; // saw down |
LfoBase<SawLFO<LFO::range_unsigned, false> > lfo7; // saw down |
330 |
|
|
331 |
|
|
332 |
public: |
public: |