Krotos Modules 3
Loading...
Searching...
No Matches
krotos::AudioSampleCircularBuffer Class Reference

A fractional delay line with several interpolation methods. More...

#include <AudioSampleCircularBuffer.h>

Classes

class  MU
 creates and stores the fractional part of a float and its inverse More...
 

Public Types

enum  InterpolationType { cubic = 0 , linear , cosine , cubic3d }
 

Public Member Functions

float fract (float input)
 returns the fractional part of a float
 
 AudioSampleCircularBuffer (int numSamples, long sampleRate) noexcept
 
int getNumSamples () const noexcept
 
int getHead () const noexcept
 
void setReadPosition (float sample) noexcept
 
void incrementReadPosition () noexcept
 
void copySamples (juce::AudioSampleBuffer &source, int numSamples) noexcept
 
void copySample (float source) noexcept
 
void addSample (int indexOffset, float newSample) noexcept
 
float getSample (float sampleToRead) noexcept
 
void setSize (int numSamples) noexcept
 
void fillWithZeroes ()
 

Protected Member Functions

float wrapFloatValue (float valueToWrap) noexcept
 
int wrapIntValue (int valueToWrap) noexcept
 

Protected Attributes

int m_numChannels
 
int m_head
 
float m_readPosition
 
bool m_useInterpolation
 
std::unique_ptr< juce::AudioSampleBuffer > m_circularDelayBuffer
 
const int m_size
 
const float m_sizeAsFloat
 
const int m_sizeMultiple
 
const float m_sizeMultipleAsFloat
 
InterpolationType m_interpolationType {InterpolationType::cubic3d}
 

Static Protected Attributes

static const int BUFFER_MULTIPLE_FOR_NEG_MODULUS_CALC {4}
 

Detailed Description

A fractional delay line with several interpolation methods.

TODO: See if this class can be replaced with juce::DelayLine

Member Enumeration Documentation

◆ InterpolationType

Enumerator
cubic 
linear 
cosine 
cubic3d 

Constructor & Destructor Documentation

◆ AudioSampleCircularBuffer()

krotos::AudioSampleCircularBuffer::AudioSampleCircularBuffer ( int numSamples,
long sampleRate )
noexcept

Member Function Documentation

◆ addSample()

void krotos::AudioSampleCircularBuffer::addSample ( int indexOffset,
float newSample )
noexcept

◆ copySample()

void krotos::AudioSampleCircularBuffer::copySample ( float source)
noexcept

◆ copySamples()

void krotos::AudioSampleCircularBuffer::copySamples ( juce::AudioSampleBuffer & source,
int numSamples )
noexcept

◆ fillWithZeroes()

void krotos::AudioSampleCircularBuffer::fillWithZeroes ( )

◆ fract()

float krotos::AudioSampleCircularBuffer::fract ( float input)

returns the fractional part of a float

Parameters
input

◆ getHead()

int krotos::AudioSampleCircularBuffer::getHead ( ) const
inlinenoexcept

◆ getNumSamples()

int krotos::AudioSampleCircularBuffer::getNumSamples ( ) const
inlinenoexcept

◆ getSample()

float krotos::AudioSampleCircularBuffer::getSample ( float sampleToRead)
noexcept

◆ incrementReadPosition()

void krotos::AudioSampleCircularBuffer::incrementReadPosition ( )
noexcept

◆ setReadPosition()

void krotos::AudioSampleCircularBuffer::setReadPosition ( float sample)
noexcept

◆ setSize()

void krotos::AudioSampleCircularBuffer::setSize ( int numSamples)
noexcept

◆ wrapFloatValue()

float krotos::AudioSampleCircularBuffer::wrapFloatValue ( float valueToWrap)
inlineprotectednoexcept

◆ wrapIntValue()

int krotos::AudioSampleCircularBuffer::wrapIntValue ( int valueToWrap)
inlineprotectednoexcept

Member Data Documentation

◆ BUFFER_MULTIPLE_FOR_NEG_MODULUS_CALC

const int krotos::AudioSampleCircularBuffer::BUFFER_MULTIPLE_FOR_NEG_MODULUS_CALC {4}
staticprotected

◆ m_circularDelayBuffer

std::unique_ptr<juce::AudioSampleBuffer> krotos::AudioSampleCircularBuffer::m_circularDelayBuffer
protected

◆ m_head

int krotos::AudioSampleCircularBuffer::m_head
protected

◆ m_interpolationType

InterpolationType krotos::AudioSampleCircularBuffer::m_interpolationType {InterpolationType::cubic3d}
protected

◆ m_numChannels

int krotos::AudioSampleCircularBuffer::m_numChannels
protected

◆ m_readPosition

float krotos::AudioSampleCircularBuffer::m_readPosition
protected

◆ m_size

const int krotos::AudioSampleCircularBuffer::m_size
protected

◆ m_sizeAsFloat

const float krotos::AudioSampleCircularBuffer::m_sizeAsFloat
protected

◆ m_sizeMultiple

const int krotos::AudioSampleCircularBuffer::m_sizeMultiple
protected

◆ m_sizeMultipleAsFloat

const float krotos::AudioSampleCircularBuffer::m_sizeMultipleAsFloat
protected

◆ m_useInterpolation

bool krotos::AudioSampleCircularBuffer::m_useInterpolation
protected

The documentation for this class was generated from the following files: