Riferimenti per la classe GenTable

Questa classe contiene un vettore monodimensionale. Implementa vari metodi per la manipolazione dello stesso, ritorna il puntatore alla tabella. Continua...

#include <GenTable.h>

Diagramma delle classi per GenTable

Inheritance graph
[legenda]
Diagramma di collaborazione per GenTable:

Collaboration graph
[legenda]
Lista di tutti i membri.

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

Descrizione Dettagliata

Questa classe contiene un vettore monodimensionale. Implementa vari metodi per la manipolazione dello stesso, ritorna il puntatore alla tabella.

by Alessandro Petrolati 2006. www.alessandro-petrolati.com ale_petrolati@alice.it

Definizione alla linea 21 del file GenTable.h.


Documentazione dei costruttori e dei distruttori

GenTable::GenTable ( const unsigned long &  length  ) 

Costruttore.

Inizializza l'oggetto con un valore intero per la dimensione dell'array. La memoria è allocata dinamicamnete.


Documentazione delle funzioni membro

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.


La documentazione per questa classe è stata generata a partire dal seguente file:
Generato il Tue Dec 26 14:42:40 2006 per AudioDrome da  doxygen 1.4.7