LMMS
Loading...
Searching...
No Matches
sfzero::EG Class Reference

#include <SFZEG.h>

Public Member Functions

 EG ()
virtual ~EG ()
void setExponentialDecay (bool newExponentialDecay)
void startNote (const EGParameters *parameters, float floatVelocity, double sampleRate, const EGParameters *velMod=nullptr)
void nextSegment ()
void noteOff ()
void fastRelease ()
bool isDone ()
bool isReleasing ()
int segmentIndex ()
float getLevel () const
void setLevel (float v)
float getSlope () const
void setSlope (float v)
int getSamplesUntilNextSegment () const
void setSamplesUntilNextSegment (int v)
bool getSegmentIsExponential () const
void setSegmentIsExponential (bool v)

Private Types

enum  Segment {
  Delay , Attack , Hold , Decay ,
  Sustain , Release , Done
}

Private Member Functions

void startDelay ()
void startAttack ()
void startHold ()
void startDecay ()
void startSustain ()
void startRelease ()

Private Attributes

Segment segment_
EGParameters parameters_
double sampleRate_
bool exponentialDecay_
float level_
float slope_
int samplesUntilNextSegment_
bool segmentIsExponential_

Static Private Attributes

static const float BottomLevel = 0.001f

Member Enumeration Documentation

◆ Segment

enum sfzero::EG::Segment
private
Enumerator
Delay 
Attack 
Hold 
Decay 
Sustain 
Release 
Done 

Constructor & Destructor Documentation

◆ EG()

sfzero::EG::EG ( )

◆ ~EG()

virtual sfzero::EG::~EG ( )
inlinevirtual

Member Function Documentation

◆ fastRelease()

void sfzero::EG::fastRelease ( )

◆ getLevel()

float sfzero::EG::getLevel ( ) const
inline

◆ getSamplesUntilNextSegment()

int sfzero::EG::getSamplesUntilNextSegment ( ) const
inline

◆ getSegmentIsExponential()

bool sfzero::EG::getSegmentIsExponential ( ) const
inline

◆ getSlope()

float sfzero::EG::getSlope ( ) const
inline

◆ isDone()

bool sfzero::EG::isDone ( )
inline

◆ isReleasing()

bool sfzero::EG::isReleasing ( )
inline

◆ nextSegment()

void sfzero::EG::nextSegment ( )

◆ noteOff()

void sfzero::EG::noteOff ( )

◆ segmentIndex()

int sfzero::EG::segmentIndex ( )
inline

◆ setExponentialDecay()

void sfzero::EG::setExponentialDecay ( bool newExponentialDecay)

◆ setLevel()

void sfzero::EG::setLevel ( float v)
inline

◆ setSamplesUntilNextSegment()

void sfzero::EG::setSamplesUntilNextSegment ( int v)
inline

◆ setSegmentIsExponential()

void sfzero::EG::setSegmentIsExponential ( bool v)
inline

◆ setSlope()

void sfzero::EG::setSlope ( float v)
inline

◆ startAttack()

void sfzero::EG::startAttack ( )
private

◆ startDecay()

void sfzero::EG::startDecay ( )
private

◆ startDelay()

void sfzero::EG::startDelay ( )
private

◆ startHold()

void sfzero::EG::startHold ( )
private

◆ startNote()

void sfzero::EG::startNote ( const EGParameters * parameters,
float floatVelocity,
double sampleRate,
const EGParameters * velMod = nullptr )

◆ startRelease()

void sfzero::EG::startRelease ( )
private

◆ startSustain()

void sfzero::EG::startSustain ( )
private

Member Data Documentation

◆ BottomLevel

const float sfzero::EG::BottomLevel = 0.001f
staticprivate

◆ exponentialDecay_

bool sfzero::EG::exponentialDecay_
private

◆ level_

float sfzero::EG::level_
private

◆ parameters_

EGParameters sfzero::EG::parameters_
private

◆ sampleRate_

double sfzero::EG::sampleRate_
private

◆ samplesUntilNextSegment_

int sfzero::EG::samplesUntilNextSegment_
private

◆ segment_

Segment sfzero::EG::segment_
private

◆ segmentIsExponential_

bool sfzero::EG::segmentIsExponential_
private

◆ slope_

float sfzero::EG::slope_
private

The documentation for this class was generated from the following files: