|
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().