OpenWareLaboratory
|
ADSR Envelope, either linear or exponential. More...
Public Member Functions | |
AdsrEnvelope (float sampleRate) | |
void | attenuate (FloatArray buf) |
void | gate (bool state) |
void | gate (bool state, int delay) |
virtual float | generate () |
Produce the next consecutive sample. More... | |
float | generate () |
Produce the next envelope sample. More... | |
virtual void | generate (FloatArray output) |
Produce a block of samples. More... | |
virtual void | generate (FloatArray output) |
Produce a block of samples. More... | |
void | getEnvelope (FloatArray output) |
float | getLevel () |
float | getNextSample () |
virtual float | process (float input) |
virtual float | process (float input) |
virtual void | process (FloatArray input, FloatArray output) |
Attenuate samples in. More... | |
virtual void | process (FloatArray input, FloatArray output) |
Attenuate samples in. More... | |
void | setAttack (float value) |
void | setDecay (float value) |
void | setLevel (float newLevel) |
void | setRelease (float value) |
void | setRetrigger (bool state) |
void | setSampleRate (float value) |
void | setSustain (float newSustain) |
virtual void | trigger () |
virtual void | trigger (bool state) |
virtual void | trigger (bool state) |
void | trigger (bool state, int delay) |
virtual void | trigger (bool state, int triggerDelay)=0 |
Static Public Member Functions | |
static AdsrEnvelope< linear > * | create (float sampleRate) |
static void | destroy (AdsrEnvelope< linear > *env) |
Protected Types | |
enum | EnvelopeStage { kAttack , kDecay , kSustain , kRelease , kIdle } |
enum | EnvelopeTrigger { kGate , kTrigger } |
Protected Member Functions | |
float | calculateIncrement (float startValue, float endValue, float time) |
float | calculateIncrement (float startValue, float endValue, float time) |
float | calculateIncrement (float startValue, float endValue, float time) |
float | decrement (float level, float amount) |
float | decrement (float level, float amount) |
float | decrement (float level, float amount) |
float | increment (float level, float amount) |
float | increment (float level, float amount) |
float | increment (float level, float amount) |
const float | MINLEVEL |
const float | MINLEVEL |
Protected Attributes | |
float | attackIncrement |
float | decayIncrement |
bool | gateState |
int | gateTime |
float | level |
float | releaseIncrement |
bool | retrigger |
float | sampleRate |
EnvelopeStage | stage |
float | sustain |
EnvelopeTrigger | trig |
Static Protected Attributes | |
static const float | MINLEVEL |
ADSR Envelope, either linear or exponential.
Definition at line 10 of file AdsrEnvelope.h.
|
protected |
Enumerator | |
---|---|
kAttack | |
kDecay | |
kSustain | |
kRelease | |
kIdle |
Definition at line 13 of file AdsrEnvelope.h.
|
protected |
Enumerator | |
---|---|
kGate | |
kTrigger |
Definition at line 14 of file AdsrEnvelope.h.
|
inline |
|
inline |
Definition at line 148 of file AdsrEnvelope.h.
References AdsrEnvelope< linear >::process().
|
protected |
|
protected |
Definition at line 192 of file AdsrEnvelope.h.
|
protected |
Definition at line 197 of file AdsrEnvelope.h.
|
inlinestatic |
Definition at line 151 of file AdsrEnvelope.h.
References AdsrEnvelope< linear >::sampleRate.
|
protected |
Referenced by AdsrEnvelope< linear >::generate().
|
protected |
Definition at line 177 of file AdsrEnvelope.h.
|
protected |
Definition at line 187 of file AdsrEnvelope.h.
|
inlinestatic |
Definition at line 154 of file AdsrEnvelope.h.
|
inlinevirtual |
Reimplemented from Envelope.
Definition at line 58 of file AdsrEnvelope.h.
Referenced by AdsrEnvelope< linear >::trigger().
|
inlinevirtual |
Reimplemented from Envelope.
Definition at line 61 of file AdsrEnvelope.h.
References AdsrEnvelope< linear >::gateState, AdsrEnvelope< linear >::gateTime, AdsrEnvelope< linear >::kGate, and AdsrEnvelope< linear >::trig.
|
inlinevirtual |
Produce the next consecutive sample.
Reimplemented from SignalGenerator.
Definition at line 19 of file SignalGenerator.h.
|
inlinevirtual |
Produce the next envelope sample.
Reimplemented from SignalGenerator.
Definition at line 77 of file AdsrEnvelope.h.
References AdsrEnvelope< linear >::attackIncrement, AdsrEnvelope< linear >::decayIncrement, AdsrEnvelope< linear >::decrement(), AdsrEnvelope< linear >::gateState, AdsrEnvelope< linear >::gateTime, AdsrEnvelope< linear >::increment(), AdsrEnvelope< linear >::kAttack, AdsrEnvelope< linear >::kDecay, AdsrEnvelope< linear >::kGate, AdsrEnvelope< linear >::kIdle, AdsrEnvelope< linear >::kRelease, AdsrEnvelope< linear >::kSustain, AdsrEnvelope< linear >::kTrigger, AdsrEnvelope< linear >::level, AdsrEnvelope< linear >::MINLEVEL, AdsrEnvelope< linear >::releaseIncrement, AdsrEnvelope< linear >::retrigger, AdsrEnvelope< linear >::stage, AdsrEnvelope< linear >::sustain, AdsrEnvelope< linear >::trig, and AdsrEnvelope< linear >::trigger().
Referenced by AdsrEnvelope< linear >::getEnvelope(), and AdsrEnvelope< linear >::getNextSample().
|
inlinevirtual |
Produce a block of samples.
Reimplemented from SignalGenerator.
Definition at line 25 of file SignalGenerator.h.
|
inlinevirtualinherited |
Produce a block of samples.
Reimplemented in VosimOscillator, VoiceAllocatorSignalGenerator< Allocator, SynthVoice, VOICES >, AntialiasedSquareWaveOscillator, SineOscillator, SampleOscillator< im >, AntialiasedRampOscillator, PolyBlepOscillator, and MorphingOscillator.
Definition at line 25 of file SignalGenerator.h.
References SignalGenerator::generate(), and SimpleArray< T >::getSize().
|
inline |
Definition at line 144 of file AdsrEnvelope.h.
References AdsrEnvelope< linear >::generate().
|
inline |
Definition at line 68 of file AdsrEnvelope.h.
References AdsrEnvelope< linear >::level.
|
inline |
Definition at line 140 of file AdsrEnvelope.h.
References AdsrEnvelope< linear >::generate().
|
protected |
Referenced by AdsrEnvelope< linear >::generate().
|
protected |
Definition at line 172 of file AdsrEnvelope.h.
|
protected |
Definition at line 182 of file AdsrEnvelope.h.
|
protected |
Definition at line 203 of file AdsrEnvelope.h.
|
protected |
Definition at line 206 of file AdsrEnvelope.h.
|
inline |
Definition at line 22 of file Envelope.h.
Referenced by AdsrEnvelope< linear >::attenuate().
|
inlinevirtualinherited |
Reimplemented from SignalProcessor.
Definition at line 22 of file Envelope.h.
References Envelope::generate().
|
inline |
Attenuate samples in.
input | by envelope and place results in |
output |
Definition at line 28 of file Envelope.h.
|
inlinevirtualinherited |
Attenuate samples in.
input | by envelope and place results in |
output |
Reimplemented from SignalProcessor.
Definition at line 28 of file Envelope.h.
References Envelope::generate(), and SimpleArray< T >::getSize().
|
inline |
Definition at line 39 of file AdsrEnvelope.h.
References AdsrEnvelope< linear >::attackIncrement, AdsrEnvelope< linear >::calculateIncrement(), and AdsrEnvelope< linear >::MINLEVEL.
Referenced by AdsrEnvelope< linear >::AdsrEnvelope().
|
inline |
Definition at line 42 of file AdsrEnvelope.h.
References AdsrEnvelope< linear >::calculateIncrement(), AdsrEnvelope< linear >::decayIncrement, and AdsrEnvelope< linear >::MINLEVEL.
Referenced by AdsrEnvelope< linear >::AdsrEnvelope().
|
inline |
Definition at line 71 of file AdsrEnvelope.h.
References AdsrEnvelope< linear >::level.
|
inline |
Definition at line 45 of file AdsrEnvelope.h.
References AdsrEnvelope< linear >::calculateIncrement(), AdsrEnvelope< linear >::MINLEVEL, and AdsrEnvelope< linear >::releaseIncrement.
Referenced by AdsrEnvelope< linear >::AdsrEnvelope().
|
inline |
Definition at line 55 of file AdsrEnvelope.h.
References AdsrEnvelope< linear >::retrigger.
Referenced by AdsrEnvelope< linear >::AdsrEnvelope().
|
inline |
Definition at line 36 of file AdsrEnvelope.h.
References AdsrEnvelope< linear >::sampleRate.
|
inline |
Definition at line 48 of file AdsrEnvelope.h.
References AdsrEnvelope< linear >::sustain.
Referenced by AdsrEnvelope< linear >::AdsrEnvelope().
|
inlinevirtual |
Reimplemented from Envelope.
Definition at line 11 of file Envelope.h.
Referenced by AdsrEnvelope< linear >::generate().
|
inlinevirtual |
Reimplemented from Envelope.
Definition at line 14 of file Envelope.h.
|
inlinevirtualinherited |
Definition at line 14 of file Envelope.h.
References Envelope::trigger().
|
inlinevirtual |
Implements Envelope.
Definition at line 51 of file AdsrEnvelope.h.
References AdsrEnvelope< linear >::gate(), AdsrEnvelope< linear >::kTrigger, and AdsrEnvelope< linear >::trig.
|
virtual |
Reimplemented from Envelope.
|
protected |
Definition at line 163 of file AdsrEnvelope.h.
Referenced by AdsrEnvelope< linear >::generate(), and AdsrEnvelope< linear >::setAttack().
|
protected |
Definition at line 164 of file AdsrEnvelope.h.
Referenced by AdsrEnvelope< linear >::generate(), and AdsrEnvelope< linear >::setDecay().
|
protected |
Definition at line 167 of file AdsrEnvelope.h.
Referenced by AdsrEnvelope< linear >::gate(), and AdsrEnvelope< linear >::generate().
|
protected |
Definition at line 168 of file AdsrEnvelope.h.
Referenced by AdsrEnvelope< linear >::gate(), and AdsrEnvelope< linear >::generate().
|
protected |
Definition at line 162 of file AdsrEnvelope.h.
Referenced by AdsrEnvelope< linear >::generate(), AdsrEnvelope< linear >::getLevel(), and AdsrEnvelope< linear >::setLevel().
|
staticprotected |
Definition at line 12 of file AdsrEnvelope.h.
Referenced by AdsrEnvelope< linear >::generate(), AdsrEnvelope< linear >::setAttack(), AdsrEnvelope< linear >::setDecay(), and AdsrEnvelope< linear >::setRelease().
|
protected |
Definition at line 165 of file AdsrEnvelope.h.
Referenced by AdsrEnvelope< linear >::generate(), and AdsrEnvelope< linear >::setRelease().
|
protected |
Definition at line 161 of file AdsrEnvelope.h.
Referenced by AdsrEnvelope< linear >::generate(), and AdsrEnvelope< linear >::setRetrigger().
|
protected |
Definition at line 158 of file AdsrEnvelope.h.
Referenced by AdsrEnvelope< linear >::AdsrEnvelope(), AdsrEnvelope< linear >::create(), and AdsrEnvelope< linear >::setSampleRate().
|
protected |
Definition at line 159 of file AdsrEnvelope.h.
Referenced by AdsrEnvelope< linear >::generate().
|
protected |
Definition at line 166 of file AdsrEnvelope.h.
Referenced by AdsrEnvelope< linear >::generate(), and AdsrEnvelope< linear >::setSustain().
|
protected |
Definition at line 160 of file AdsrEnvelope.h.
Referenced by AdsrEnvelope< linear >::gate(), AdsrEnvelope< linear >::generate(), and AdsrEnvelope< linear >::trigger().