Gin
Loading...
Searching...
No Matches
Public Member Functions | List of all members
ResamplingFifo Class Reference

High-quality sample rate conversion FIFO using libsamplerate. More...

#include <gin_resamplingfifo.h>

Public Member Functions

 ResamplingFifo (int blockSize, int numChannels=2, int maxSamples=44100)
 
 ~ResamplingFifo ()
 
void setSize (int blockSize, int numChannels=2, int maxSamples=44100)
 
void setResamplingRatio (double inputRate, double outputRate)
 
void setRatio (float ratio)
 
float getRatio ()
 
void setQuality (int q)
 0 - 4: 0 is worst, 4 is best
 
void reset ()
 
int samplesReady ()
 
void pushAudioBuffer (const juce::AudioSampleBuffer &buffer)
 
void popAudioBuffer (juce::AudioSampleBuffer &buffer)
 
void popAudioBufferAdding (juce::AudioSampleBuffer &buffer)
 

Detailed Description

High-quality sample rate conversion FIFO using libsamplerate.

ResamplingFifo provides real-time sample rate conversion with buffering, allowing you to push audio at one sample rate and pull it out at another. It uses the Secret Rabbit Code (libsamplerate) library for high-quality resampling with configurable quality levels.

Key Features:

Quality Levels (0-4):

Common Use Cases:

Usage:

ResamplingFifo resampler(512, 2, 44100); // 512 block, 2 channels, max 44100 samples
resampler.setResamplingRatio(48000.0, 44100.0); // 48kHz to 44.1kHz
resampler.setQuality(2); // Best quality
// Push audio at input rate
resampler.pushAudioBuffer(input48k);
// Pull audio at output rate
AudioBuffer<float> output44k(2, 460); // ~460 samples at 44.1kHz
if (resampler.samplesReady() >= 460)
resampler.popAudioBuffer(output44k);
A lightweight 2D point class for projects that don't use juce_graphics.
Definition gin_point.h:25
High-quality sample rate conversion FIFO using libsamplerate.
Definition gin_resamplingfifo.h:65
See also
AudioFifo, resampleBuffer

Constructor & Destructor Documentation

◆ ResamplingFifo()

ResamplingFifo::ResamplingFifo ( int  blockSize,
int  numChannels = 2,
int  maxSamples = 44100 
)

◆ ~ResamplingFifo()

ResamplingFifo::~ResamplingFifo ( )

Member Function Documentation

◆ setSize()

void ResamplingFifo::setSize ( int  blockSize,
int  numChannels = 2,
int  maxSamples = 44100 
)

◆ setResamplingRatio()

void ResamplingFifo::setResamplingRatio ( double  inputRate,
double  outputRate 
)

◆ setRatio()

void ResamplingFifo::setRatio ( float  ratio)

◆ getRatio()

float ResamplingFifo::getRatio ( )

◆ setQuality()

void ResamplingFifo::setQuality ( int  q)

0 - 4: 0 is worst, 4 is best

◆ reset()

void ResamplingFifo::reset ( )

◆ samplesReady()

int ResamplingFifo::samplesReady ( )

◆ pushAudioBuffer()

void ResamplingFifo::pushAudioBuffer ( const juce::AudioSampleBuffer &  buffer)

◆ popAudioBuffer()

void ResamplingFifo::popAudioBuffer ( juce::AudioSampleBuffer &  buffer)

◆ popAudioBufferAdding()

void ResamplingFifo::popAudioBufferAdding ( juce::AudioSampleBuffer &  buffer)

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