hydrogen 1.1.1
ADSR Class Reference

Attack Decay Sustain Release envelope. More...

#include <Adsr.h>

Inheritance diagram for ADSR:
Object

Public Member Functions

 ADSR (unsigned int attack=0, unsigned int decay=0, float sustain=1.0, unsigned int release=1000)
 constructor More...
 
 ADSR (const ADSR *other)
 copy constructor More...
 
 ~ADSR ()
 destructor More...
 
void set_attack (unsigned int value)
 __attack setter More...
 
unsigned int get_attack ()
 __attack accessor More...
 
void set_decay (unsigned int value)
 __decay setter More...
 
unsigned int get_decay ()
 __decay accessor More...
 
void set_sustain (float value)
 __sustain setter More...
 
float get_sustain ()
 __sustain accessor More...
 
void set_release (unsigned int value)
 __release setter More...
 
unsigned int get_release ()
 __release accessor More...
 
void attack ()
 sets state to ATTACK More...
 
float get_value (float step)
 compute the value and return it More...
 
float release ()
 sets state to RELEASE, returns 0 if the state is IDLE, __value if the state is RELEASE, set state to RELEASE, save __release_value and return it. More...
 
QString toQString (const QString &sPrefix, bool bShort=true) const override
 Formatted string version for debugging purposes. More...
 
- Public Member Functions inherited from Object
 ~Object ()
 destructor More...
 
 Object (const Object &obj)
 copy constructor More...
 
 Object (const char *class_name)
 constructor More...
 
const char * class_name () const
 return the class name More...
 
virtual QString toQString (const QString &sPrefix, bool bShort=true) const
 Formatted string version for debugging purposes. More...
 
void Print (bool bShort=true) const
 Prints content of toQString() via DEBUGLOG. More...
 

Private Types

enum  ADSRState {
  ATTACK =0 , DECAY , SUSTAIN , RELEASE ,
  IDLE
}
 possible states More...
 

Private Member Functions

void normalise ()
 

Private Attributes

unsigned int __attack
 Attack tick count. More...
 
unsigned int __decay
 Decay tick count. More...
 
float __sustain
 Sustain level. More...
 
unsigned int __release
 Release tick count. More...
 
ADSRState __state
 current state More...
 
float __ticks
 current tick count More...
 
float __value
 current value More...
 
float __release_value
 value when the release state was entered More...
 

Additional Inherited Members

- Static Public Member Functions inherited from Object
static void set_count (bool flag)
 enable/disable class instances counting More...
 
static bool count_active ()
 return true if class instances counting is enabled More...
 
static unsigned objects_count ()
 return the number of objects More...
 
static void write_objects_map_to (std::ostream &out)
 output the full objects map to a given ostream More...
 
static void write_objects_map_to_cerr ()
 output objects map to stderr More...
 
static int bootstrap (Logger *logger, bool count=false)
 must be called before any Object instantiation ! More...
 
static Loggerlogger ()
 return the logger instance More...
 
- Static Public Attributes inherited from Object
static QString sPrintIndention = " "
 String used to format the debugging string output of some core classes. More...
 
- Static Protected Attributes inherited from Object
static Logger__logger = nullptr
 logger instance pointer More...
 

Detailed Description

Attack Decay Sustain Release envelope.

Member Enumeration Documentation

◆ ADSRState

enum ADSRState
private

possible states

Enumerator
ATTACK 
DECAY 
SUSTAIN 
RELEASE 
IDLE 

Constructor & Destructor Documentation

◆ ADSR() [1/2]

ADSR ( unsigned int  attack = 0,
unsigned int  decay = 0,
float  sustain = 1.0,
unsigned int  release = 1000 
)

constructor

Parameters
attacktick duration
decaytick duration
sustainlevel
releasetick duration

◆ ADSR() [2/2]

ADSR ( const ADSR other)

copy constructor

◆ ~ADSR()

~ADSR ( )

destructor

Member Function Documentation

◆ attack()

void attack ( )

sets state to ATTACK

◆ get_attack()

unsigned int get_attack ( )
inline

__attack accessor

◆ get_decay()

unsigned int get_decay ( )
inline

__decay accessor

◆ get_release()

unsigned int get_release ( )
inline

__release accessor

◆ get_sustain()

float get_sustain ( )
inline

__sustain accessor

◆ get_value()

float get_value ( float  step)

compute the value and return it

Parameters
stepthe increment to be added to __ticks

◆ normalise()

void normalise ( )
private

◆ release()

float release ( )

sets state to RELEASE, returns 0 if the state is IDLE, __value if the state is RELEASE, set state to RELEASE, save __release_value and return it.

◆ set_attack()

void set_attack ( unsigned int  value)
inline

__attack setter

Parameters
valuethe new value

◆ set_decay()

void set_decay ( unsigned int  value)
inline

__decay setter

Parameters
valuethe new value

◆ set_release()

void set_release ( unsigned int  value)
inline

__release setter

Parameters
valuethe new value

◆ set_sustain()

void set_sustain ( float  value)
inline

__sustain setter

Parameters
valuethe new value

◆ toQString()

QString toQString ( const QString &  sPrefix,
bool  bShort = true 
) const
overridevirtual

Formatted string version for debugging purposes.

Parameters
sPrefixString prefix which will be added in front of every new line
bShortInstead of the whole content of all classes stored as members just a single unique identifier will be displayed without line breaks.
Returns
String presentation of current object.

Reimplemented from Object.

Field Documentation

◆ __attack

unsigned int __attack
private

Attack tick count.

◆ __decay

unsigned int __decay
private

Decay tick count.

◆ __release

unsigned int __release
private

Release tick count.

◆ __release_value

float __release_value
private

value when the release state was entered

◆ __state

ADSRState __state
private

current state

◆ __sustain

float __sustain
private

Sustain level.

◆ __ticks

float __ticks
private

current tick count

◆ __value

float __value
private

current value