#include <GenTable.h>
Diagramma delle classi per GenTable


Membri pubblici | |
| GenTable (const unsigned long &length) | |
| Costruttore. | |
| GenTable (const GenTable &x) | |
| Costruttore di copia. | |
| virtual | ~GenTable () |
| Distruttore. | |
| const float * | getPtr () const |
| Ritorna il puntatore dell'array. | |
| unsigned long | getSize () const |
| Ritorna la dimensione dell'array. | |
| float | getPeak () |
| Ritorna il valore di picco del segnale contenuto nell'array. | |
| float | getRaw (const double &phi) |
| Ritorna i valori contenuti nella posizione specificata. | |
| float | getInterp (const double &phi) |
| Ritorna il valore interpolato a due punti. | |
| float | getInterp3 (const double &phi) |
| Ritorna il valore interpolato a tre punti. | |
| float | getMorph (const double &phi, GenTable *b, const float &point=0.f) |
| Attua un interpolazione pesata tra due oggetti. | |
| void | writeGuardPoint () |
| Scrive il "Extend Guard Point". | |
| void | clear () |
| Pulisce l'array scrivendo il valore 0.f su tutte le allocazioni. | |
| void | copy (const GenTable *r) |
| Copia nella tabella i valori con quelli dell'oggetto r. | |
| void | normalize () |
| Normalizza l'intero vettore. | |
| void | rescale (const float &resc=1.0) |
| Riscala l'array per il valore dato. | |
| void | offSet (const float &offset=0.0) |
| Somma un valore costante "offset" su l'intero array. | |
| void | resize (const unsigned long &newSize) |
| Ridimensiona la tabella con una nuova lunghezza. | |
| void | add (const GenTable *b) |
| Addiziona con i corrispettivi valori dell'oggetto in ingresso. | |
| void | sub (const GenTable *b) |
| Sottrae con i corrispettivi valori dell'oggetto in ingresso. | |
| void | mul (const GenTable *b) |
| Moltiplica con i corrispettivi valori dell'oggetto in ingresso. | |
| void | div (const GenTable *b) |
| Divide con i corrispettivi valori dell'oggetto in ingresso. | |
| void | morphing (const GenTable *b, const float &point=0.f) |
| Attua una pesatura dell'array con i corrispettivi valori dell'oggetto b. | |
Attributi protetti | |
| unsigned long | _size |
| float * | _table |
by Alessandro Petrolati 2006. www.alessandro-petrolati.com ale_petrolati@alice.it
Definizione alla linea 21 del file GenTable.h.
| GenTable::GenTable | ( | const unsigned long & | length | ) |
Costruttore.
Inizializza l'oggetto con un valore intero per la dimensione dell'array. La memoria è allocata dinamicamnete.
| void GenTable::add | ( | const GenTable * | b | ) |
Addiziona con i corrispettivi valori dell'oggetto in ingresso.
Il metodo agisce sul proprio array, i valori di questo vengono sommati a quelli dell'oggetto in ingresso: _table[n] += b._table[n]; Se le dimensioni non sono uguali, l'operazione è saltata.
| void GenTable::copy | ( | const GenTable * | r | ) |
Copia nella tabella i valori con quelli dell'oggetto r.
Se le dimesione degli array sono diverse la lunghezza dell'oggetto corrente viene ridimensionata, tutti i valori sono sovrascritti. N.B. i valori presenti prima della copia, vengono sovrascritti.
| void GenTable::div | ( | const GenTable * | b | ) |
Divide con i corrispettivi valori dell'oggetto in ingresso.
Se le dimensioni non sono uguali, l'operazione è saltata.
| float GenTable::getInterp | ( | const double & | phi | ) |
Ritorna il valore interpolato a due punti.
Accetta un valore di "Phase" normalizzato, usa la parte intera come indice, riscalata sulla dimensione dell'array e attua un'interpolazione a due punti.
| float GenTable::getInterp3 | ( | const double & | phi | ) |
Ritorna il valore interpolato a tre punti.
Accetta un valore di "Phase" normalizzato, usa la parte intera come indice, riscalata sulla dimensione dell'array e attua un'interpolazione cubica. N.B. La seguente implementazione segue il modello Csound implementato in "table3 opcode".
| float GenTable::getMorph | ( | const double & | phi, | |
| GenTable * | b, | |||
| const float & | point = 0.f | |||
| ) |
Attua un interpolazione pesata tra due oggetti.
Il "morphing" avviene per mezzo della pesatura tra il valore di phase dell'oggetto corrente e quello dell'oggetto in ingresso. Vedi morphing () per chiarimenti. N.B. Per motivi di prestazioni non è incluso il controllo sulla dimensione delle tabelle, devono necessariamente coincidere, ossia la lunghezza dell'array corrente deve essere identica a quella dell'oggetto in ingresso. Inoltre questo metodo ritorna il valore interpolato.
| float GenTable::getPeak | ( | ) |
Ritorna il valore di picco del segnale contenuto nell'array.
La funzione trova due valori di picco, uno per i positivi e uno per i negativi. Quello più grande viene ritornato.
| float GenTable::getRaw | ( | const double & | phi | ) |
Ritorna i valori contenuti nella posizione specificata.
Accetta un valore di "Phase" normalizzato come indice (da 0 a 1).
| void GenTable::morphing | ( | const GenTable * | b, | |
| const float & | point = 0.f | |||
| ) |
Attua una pesatura dell'array con i corrispettivi valori dell'oggetto b.
Se le dimensioni non sono uguali, l'operazione è saltata. Il valore "point" dev'essere compreso tra 0 e 1, vedere Interpolation per ulteriori dettagli. N.B. Non è consigliato l'uso di questa funzione in contesti generativi o di controllo con velocità (sampling rate) di elevate. Si raccomanda l'uso solo nelle impostazioni con bassa frequenza di schedulazione. Vedi la controparte getMorph().
| void GenTable::mul | ( | const GenTable * | b | ) |
Moltiplica con i corrispettivi valori dell'oggetto in ingresso.
Se le dimensioni non sono uguali, l'operazione è saltata.
| void GenTable::normalize | ( | ) |
Normalizza l'intero vettore.
La funzione chiama getPeak(), il vettore viene riscalato opportunamente. Ossia i valori sono rimappati da -1 a +1, il fattore di riscalamento è: 1.0 / getPeak ().
| void GenTable::resize | ( | const unsigned long & | newSize | ) |
Ridimensiona la tabella con una nuova lunghezza.
Trascrive i valori su una copia dell'oggetto corrente, ridimensiona la tabella e riscrive i dati interpolando i valori.
| void GenTable::sub | ( | const GenTable * | b | ) |
Sottrae con i corrispettivi valori dell'oggetto in ingresso.
Se le dimensioni non sono uguali, l'operazione è saltata.
| void GenTable::writeGuardPoint | ( | ) |
Scrive il "Extend Guard Point".
Quando si utilizza la tabella leggendo i valori interpolati, si rende necessario estendere la "_size" complessiva scrivendo il valore sull'allocazione 0, sull'ultima (_size + 1). Prevalentemente questa funzione è usata dai metodi di generazione di questa classe o classi derivate, ma potrebbe servire nel caso, per esempio, si definisca ad "hoc" un prototipo.
1.4.7