OpenWareLaboratory
|
Circular buffer that keeps a delta table of differences for faster fractional delay lines. More...
Public Member Functions | |
void | clear () |
void | delay (T *in, T *out, size_t len, float beginDelay, float endDelay) |
Write to buffer and read with a delay that ramps up or down from beginDelay to endDelay. More... | |
void | delay (T *in, T *out, size_t len, float delay) |
Write to buffer and read with a delay. More... | |
FractionalCircularBuffer () | |
FractionalCircularBuffer (T *data, T *delta, size_t size) | |
size_t | getContiguousReadCapacity () |
size_t | getContiguousWriteCapacity () |
T * | getData () |
float | getDelay () |
Get the read index expressed as delay behind the write index. More... | |
T * | getDelta () |
size_t | getReadCapacity () |
T * | getReadHead () |
float | getReadIndex () |
size_t | getSize () const |
size_t | getWriteCapacity () |
T * | getWriteHead () |
size_t | getWriteIndex () |
bool | isEmpty () const |
void | moveReadHead (float samples) |
void | moveWriteHead (int samples) |
T | read () |
void | read (T *dst, size_t len) |
T | readAt (float index) |
void | reset () |
void | setAll (const T value) |
void | setDelay (float samples) |
Set the read index. More... | |
void | setReadIndex (float pos) |
void | setWriteIndex (size_t pos) |
void | write (T *src, size_t len) |
void | write (T value) |
void | writeAt (size_t index, T value) |
Static Public Member Functions | |
static FractionalCircularBuffer< T > * | create (size_t len) |
static void | destroy (FractionalCircularBuffer< T > *obj) |
Protected Member Functions | |
T | update (T previous, T current, size_t i) |
Update an entry in the internal data and delta tables. More... | |
Circular buffer that keeps a delta table of differences for faster fractional delay lines.
Note that this class requires twice as much buffer space as CircularBuffer.
Definition at line 11 of file FractionalCircularBuffer.h.
|
inline |
Definition at line 29 of file FractionalCircularBuffer.h.
|
inline |
Definition at line 30 of file FractionalCircularBuffer.h.
|
inline |
Definition at line 241 of file FractionalCircularBuffer.h.
References FractionalCircularBuffer< T >::setAll().
Referenced by FastFractionalDelayProcessor::clear(), and FractionalCircularBuffer< T >::create().
|
inlinestatic |
Definition at line 245 of file FractionalCircularBuffer.h.
References FractionalCircularBuffer< T >::clear().
|
inline |
Write to buffer and read with a delay that ramps up or down from beginDelay to endDelay.
Definition at line 178 of file FractionalCircularBuffer.h.
References FractionalCircularBuffer< T >::readAt(), FractionalCircularBuffer< T >::setDelay(), and FractionalCircularBuffer< T >::update().
|
inline |
Write to buffer and read with a delay.
Definition at line 168 of file FractionalCircularBuffer.h.
References FractionalCircularBuffer< T >::read(), FractionalCircularBuffer< T >::setDelay(), and FractionalCircularBuffer< T >::write().
Referenced by FastFractionalDelayProcessor::smooth().
|
inlinestatic |
Definition at line 251 of file FractionalCircularBuffer.h.
|
inline |
Definition at line 223 of file FractionalCircularBuffer.h.
|
inline |
Definition at line 216 of file FractionalCircularBuffer.h.
|
inline |
Definition at line 36 of file FractionalCircularBuffer.h.
Referenced by FastFractionalDelayProcessor::destroy().
|
inline |
Get the read index expressed as delay behind the write index.
Definition at line 161 of file FractionalCircularBuffer.h.
|
inline |
Definition at line 40 of file FractionalCircularBuffer.h.
Referenced by FastFractionalDelayProcessor::destroy().
|
inline |
Definition at line 208 of file FractionalCircularBuffer.h.
Referenced by FractionalCircularBuffer< T >::getWriteCapacity().
|
inline |
Definition at line 143 of file FractionalCircularBuffer.h.
|
inline |
Definition at line 135 of file FractionalCircularBuffer.h.
|
inline |
Definition at line 32 of file FractionalCircularBuffer.h.
|
inline |
Definition at line 212 of file FractionalCircularBuffer.h.
References FractionalCircularBuffer< T >::getReadCapacity().
|
inline |
Definition at line 125 of file FractionalCircularBuffer.h.
|
inline |
Definition at line 117 of file FractionalCircularBuffer.h.
|
inline |
Definition at line 44 of file FractionalCircularBuffer.h.
References abs.
|
inline |
Definition at line 147 of file FractionalCircularBuffer.h.
References FractionalCircularBuffer< T >::setReadIndex().
|
inline |
Definition at line 129 of file FractionalCircularBuffer.h.
|
inline |
Definition at line 77 of file FractionalCircularBuffer.h.
Referenced by FractionalCircularBuffer< T >::delay(), and FastFractionalDelayProcessor::process().
|
inline |
Definition at line 88 of file FractionalCircularBuffer.h.
|
inline |
Definition at line 110 of file FractionalCircularBuffer.h.
Referenced by FractionalCircularBuffer< T >::delay().
|
inline |
Definition at line 237 of file FractionalCircularBuffer.h.
|
inline |
Definition at line 230 of file FractionalCircularBuffer.h.
Referenced by FractionalCircularBuffer< T >::clear().
|
inline |
Set the read index.
samples | behind the write index. |
Definition at line 154 of file FractionalCircularBuffer.h.
References FractionalCircularBuffer< T >::setReadIndex().
Referenced by FractionalCircularBuffer< T >::delay(), and FastFractionalDelayProcessor::process().
|
inline |
Definition at line 139 of file FractionalCircularBuffer.h.
Referenced by FractionalCircularBuffer< T >::moveReadHead(), and FractionalCircularBuffer< T >::setDelay().
|
inline |
Definition at line 121 of file FractionalCircularBuffer.h.
|
inlineprotected |
Update an entry in the internal data and delta tables.
Definition at line 23 of file FractionalCircularBuffer.h.
Referenced by FractionalCircularBuffer< T >::delay(), FractionalCircularBuffer< T >::write(), and FractionalCircularBuffer< T >::writeAt().
|
inline |
Definition at line 55 of file FractionalCircularBuffer.h.
References FractionalCircularBuffer< T >::update().
|
inline |
Definition at line 48 of file FractionalCircularBuffer.h.
References FractionalCircularBuffer< T >::update().
Referenced by FractionalCircularBuffer< T >::delay(), and FastFractionalDelayProcessor::process().
|
inline |
Definition at line 72 of file FractionalCircularBuffer.h.
References FractionalCircularBuffer< T >::update().