Pd++
0.01
A pure C++ implementation of Pure Data objects
|
Reads from a table at a variable delay rate. More...
#include <VariableDelay.h>
Public Member Functions | |
VariableDelay (double) | |
void | delayWrite (double input) |
double | delayRead (double delayTime) |
double | perform (double delayTime) |
Public Member Functions inherited from PdMaster | |
void * | getbytes (size_t nbytes) |
void * | resizebytes (void *old, size_t oldsize, size_t newsize) |
void | freebytes (void *fatso, size_t nbytes) |
std::string | getPath () |
void | setSampleRate (unsigned long) |
unsigned long | getSampleRate () |
void | setBlockSize (int) |
int | getBlockSize () |
double | getTimeInSampleTicks () |
long | getTimeInMilliSeconds (double time) |
int | pdBigOrSmall (double f) |
void | cos_maketable () |
int | PD_BIGORSMALL (float f) |
void | setFFTWindow (int) |
int | getFFTWindow () |
double | mtof (double) |
double | ftom (double) |
double | powtodb (double) |
double | dbtopow (double) |
double | rmstodb (double) |
double | dbtorms (double) |
Public Attributes | |
std::string | pdName = "vd~" |
Public Attributes inherited from PdMaster | |
int | cosTableSize = COSTABSIZE |
float * | cos_table |
Additional Inherited Members | |
Public Types inherited from PdMaster | |
typedef union PdMaster::_sampleint_union | t_sampleint_union |
Reads from a table at a variable delay rate.
This is our variable delay class. You can use any signal to control the delay time, or you can just use a number. This particular delay uses four point polynomial interpolation which removes those pesky artefacts.
This class also has a delayRead() function, comparable to the delread~ object. Check the caution warning.
double pd::VariableDelay::delayRead | ( | double | delayTime | ) |
Caution: Do not use this function with the perform() function. Use one or the other. This function reads from the delay line without the interpolation. If you were to use this function and the perform() function you risk both accessing the same address in memory at the same time. If you must do this then I recommend using a mutex.