#include <Envelope.h>
Diagramma delle classi per Envelope
Membri pubblici | |
Envelope (const float &sr, GenTable *shape, const INTERPOLATION &interp=LINEAR) | |
Costruttore. | |
~Envelope () | |
Distruttore. | |
void | setShape (GenTable *shape) |
Imposta il puntatore all'ggetto "GenTable" contenente la forma d'onda. | |
void | setInterp (const INTERPOLATION &type=LINEAR) |
Imposta l'interpolazione. | |
void | inArg (const float &dur, const float &attack, const float &decay) |
Imposta la durata, l'attacco e il decadimento dell'inviluppo. | |
void | setDuration (const float &dur) |
Imposta la sola durata dell'inviluppo. (in secondi). | |
void | setAttack (const float &attack) |
Imposta il solo valore di attacco dell'inviluppo. (in % della durata). | |
void | setDecay (const float &decay) |
Imposta il solo valore di decadimento dell'inviluppo. (in % della durata). | |
void | reinitEnv () |
Resetta lo stato dell'inviluppo einiziandolo con gli ultimi parametri. | |
virtual float | outSig () |
Calcola il campione (sample) e ritorna il valore. | |
float | outTrapezoid () |
Come outSig () ma genera direttamente un trapezoide. | |
Attributi protetti | |
float | _attack |
float | _decay |
float | _sus |
GenTable * | _shape |
_sus = _dur - (_attack + _decay);
by Alessandro Petrolati 2006. www.alessandro-petrolati.com ale_petrolati@alice.it
Definizione alla linea 26 del file Envelope.h.
Envelope::Envelope | ( | const float & | sr, | |
GenTable * | shape, | |||
const INTERPOLATION & | interp = LINEAR | |||
) |
Costruttore.
Inizializza l'oggetto con un fattore di campionamento (Sampling Rate). Il valore espresso deve essere supportato dall' hardware device. Inoltre è necessario esprimere un puntatore a una classe "Generator" e il metodo di interpolazione usato dall'Inviluppo (DISABLE,LINEAR,CUBIC).
void Envelope::inArg | ( | const float & | dur, | |
const float & | attack, | |||
const float & | decay | |||
) |
Imposta la durata, l'attacco e il decadimento dell'inviluppo.
La durata è espressa in secondi, l'attacco e il decadimento sono espressi come percentuale (%) della durata. Sono possibili valori compresi tra 0 e 0.5, ossia il 50% della durata dell'inviluppo per ciascun parametro. Con l'attacco e il decadimento impostati a 0.5, viene generato un prototipo triangolare, mentre con valori minori di 0.5, si produce un trapezoide. Con valori prossimi allo 0, il prototipo degenera in un rettangolare.
N.B. Questa funzione provoca l'INIZIALIZZAZIONE dell'inviluppo, in modo analodo procede this->setDuration (); Le funzioni impostano i parametri dell'inviluppo (ASD), quando l'inviluppo è stato generato le successive chiamate della funzione outSig () fa ritornare l'ultimo valore del campione generato.
virtual float Envelope::outSig | ( | ) | [virtual] |
Calcola il campione (sample) e ritorna il valore.
Ad ogni chiamata si incrementa la fase interna. L'incremento dipende dalla durata espressa. Il valore della "phase", viene utilizzato come indice di tabella su un prototipo di tipo "Window".
Reimplementa Phasor.
void Envelope::setInterp | ( | const INTERPOLATION & | type = LINEAR |
) |
Imposta l'interpolazione.
Imposta la funzione usata dall'oggetto, sono possibili i seguenti metodi: DISABLE = non interpolato. LINEAR = interpolazione lineare a 2 punti. CUBIC = interpolazione cubica.