Jamba C++ API  5.1.1
SampleRateBasedClock Class Reference

The purpose of this class is to deal with timing based on the sample rate and do the proper conversions. More...

#include <SampleRateBasedClock.h>

Classes

class  RateLimiter
 Keeps track of the time in number of samples processed vs sample rate. More...
 

Public Member Functions

TSamples getNextBarSampleCount (TSamples iCurrentSampleCount, double iTempo, int32 iTimeSigNumerator=4, int32 iTimeSigDenominator=4) const
 Given the current sample count (which can be extracted from ProcessData::processContext->projectTimeSamples) returns the number of samples for the next bar boundary. More...
 
RateLimiter getRateLimiter (uint32 iMillis) const
 
uint32 getSampleCountFor (uint32 iMillis) const
 
uint32 getSampleCountFor1Bar (double iTempo, int32 iTimeSigNumerator=4, int32 iTimeSigDenominator=4) const
 
SampleRate getSampleRate () const
 
uint32 getTimeForSampleCount (uint32 iSampleCount) const
 
 SampleRateBasedClock (SampleRate iSampleRate)
 
void setSampleRate (SampleRate iSampleRate)
 

Private Attributes

SampleRate fSampleRate
 

Detailed Description

The purpose of this class is to deal with timing based on the sample rate and do the proper conversions.

Constructor & Destructor Documentation

◆ SampleRateBasedClock()

SampleRateBasedClock ( SampleRate  iSampleRate)
inlineexplicit

Member Function Documentation

◆ getNextBarSampleCount()

TSamples getNextBarSampleCount ( TSamples  iCurrentSampleCount,
double  iTempo,
int32  iTimeSigNumerator = 4,
int32  iTimeSigDenominator = 4 
) const
inline

Given the current sample count (which can be extracted from ProcessData::processContext->projectTimeSamples) returns the number of samples for the next bar boundary.

Example: with a tempo of 120 (4/4), and a sample rate of 48000, each bar is 96000 samples.

getNextBarSampleCount(52123, 120) == 96000; // 1 bar
getNextBarSampleCount(600000, 120) == 672000; // 7 bars
getNextBarSampleCount(672000, 120) == 672000; // 7 bars
getNextBarSampleCount(672001, 120) == 768000; // 8 bars

◆ getRateLimiter()

RateLimiter getRateLimiter ( uint32  iMillis) const
inline

◆ getSampleCountFor()

uint32 getSampleCountFor ( uint32  iMillis) const
inline

◆ getSampleCountFor1Bar()

uint32 getSampleCountFor1Bar ( double  iTempo,
int32  iTimeSigNumerator = 4,
int32  iTimeSigDenominator = 4 
) const
inline

◆ getSampleRate()

SampleRate getSampleRate ( ) const
inline

◆ getTimeForSampleCount()

uint32 getTimeForSampleCount ( uint32  iSampleCount) const
inline

◆ setSampleRate()

void setSampleRate ( SampleRate  iSampleRate)
inline

Member Data Documentation

◆ fSampleRate

SampleRate fSampleRate
private

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