webkit  2cdf99a9e3038c7e01b3c37e8ad903ecbe5eecf1
https://github.com/WebKit/webkit
Public Member Functions | Protected Types | Protected Member Functions | Protected Attributes | List of all members
WebCore::DynamicsCompressorKernel Class Reference

#include <DynamicsCompressorKernel.h>

Public Member Functions

 DynamicsCompressorKernel (float sampleRate, unsigned numberOfChannels)
 
void setNumberOfChannels (unsigned)
 
void process (float *sourceChannels[], float *destinationChannels[], unsigned numberOfChannels, unsigned framesToProcess, float dbThreshold, float dbKnee, float ratio, float attackTime, float releaseTime, float preDelayTime, float dbPostGain, float effectBlend, float releaseZone1, float releaseZone2, float releaseZone3, float releaseZone4)
 
void reset ()
 
unsigned latencyFrames () const
 
float sampleRate () const
 
float meteringGain () const
 

Protected Types

enum  { MaxPreDelayFrames = 1024 }
 
enum  { MaxPreDelayFramesMask = MaxPreDelayFrames - 1 }
 
enum  { DefaultPreDelayFrames = 256 }
 

Protected Member Functions

void setPreDelayTime (float)
 
float kneeCurve (float x, float k)
 
float saturate (float x, float k)
 
float slopeAt (float x, float k)
 
float kAtSlope (float desiredSlope)
 
float updateStaticCurveParameters (float dbThreshold, float dbKnee, float ratio)
 

Protected Attributes

float m_sampleRate
 
float m_detectorAverage
 
float m_compressorGain
 
float m_meteringReleaseK
 
float m_meteringGain
 
unsigned m_lastPreDelayFrames
 
Vector< std::unique_ptr< AudioFloatArray > > m_preDelayBuffers
 
int m_preDelayReadIndex
 
int m_preDelayWriteIndex
 
float m_maxAttackCompressionDiffDb
 
float m_ratio
 
float m_slope
 
float m_linearThreshold
 
float m_dbThreshold
 
float m_dbKnee
 
float m_kneeThreshold
 
float m_kneeThresholdDb
 
float m_ykneeThresholdDb
 
float m_K
 

Member Enumeration Documentation

◆ anonymous enum

anonymous enum
protected
Enumerator
MaxPreDelayFrames 

◆ anonymous enum

anonymous enum
protected
Enumerator
MaxPreDelayFramesMask 

◆ anonymous enum

anonymous enum
protected
Enumerator
DefaultPreDelayFrames 

Constructor & Destructor Documentation

◆ DynamicsCompressorKernel()

WebCore::DynamicsCompressorKernel::DynamicsCompressorKernel ( float  sampleRate,
unsigned  numberOfChannels 
)

Member Function Documentation

◆ kAtSlope()

float WebCore::DynamicsCompressorKernel::kAtSlope ( float  desiredSlope)
protected

◆ kneeCurve()

float WebCore::DynamicsCompressorKernel::kneeCurve ( float  x,
float  k 
)
protected

◆ latencyFrames()

unsigned WebCore::DynamicsCompressorKernel::latencyFrames ( ) const
inline

◆ meteringGain()

float WebCore::DynamicsCompressorKernel::meteringGain ( ) const
inline

◆ process()

void WebCore::DynamicsCompressorKernel::process ( float *  sourceChannels[],
float *  destinationChannels[],
unsigned  numberOfChannels,
unsigned  framesToProcess,
float  dbThreshold,
float  dbKnee,
float  ratio,
float  attackTime,
float  releaseTime,
float  preDelayTime,
float  dbPostGain,
float  effectBlend,
float  releaseZone1,
float  releaseZone2,
float  releaseZone3,
float  releaseZone4 
)

◆ reset()

void WebCore::DynamicsCompressorKernel::reset ( )

◆ sampleRate()

float WebCore::DynamicsCompressorKernel::sampleRate ( ) const
inline

◆ saturate()

float WebCore::DynamicsCompressorKernel::saturate ( float  x,
float  k 
)
protected

◆ setNumberOfChannels()

void WebCore::DynamicsCompressorKernel::setNumberOfChannels ( unsigned  )

◆ setPreDelayTime()

void WebCore::DynamicsCompressorKernel::setPreDelayTime ( float  )
protected

◆ slopeAt()

float WebCore::DynamicsCompressorKernel::slopeAt ( float  x,
float  k 
)
protected

◆ updateStaticCurveParameters()

float WebCore::DynamicsCompressorKernel::updateStaticCurveParameters ( float  dbThreshold,
float  dbKnee,
float  ratio 
)
protected

Member Data Documentation

◆ m_compressorGain

float WebCore::DynamicsCompressorKernel::m_compressorGain
protected

◆ m_dbKnee

float WebCore::DynamicsCompressorKernel::m_dbKnee
protected

◆ m_dbThreshold

float WebCore::DynamicsCompressorKernel::m_dbThreshold
protected

◆ m_detectorAverage

float WebCore::DynamicsCompressorKernel::m_detectorAverage
protected

◆ m_K

float WebCore::DynamicsCompressorKernel::m_K
protected

◆ m_kneeThreshold

float WebCore::DynamicsCompressorKernel::m_kneeThreshold
protected

◆ m_kneeThresholdDb

float WebCore::DynamicsCompressorKernel::m_kneeThresholdDb
protected

◆ m_lastPreDelayFrames

unsigned WebCore::DynamicsCompressorKernel::m_lastPreDelayFrames
protected

◆ m_linearThreshold

float WebCore::DynamicsCompressorKernel::m_linearThreshold
protected

◆ m_maxAttackCompressionDiffDb

float WebCore::DynamicsCompressorKernel::m_maxAttackCompressionDiffDb
protected

◆ m_meteringGain

float WebCore::DynamicsCompressorKernel::m_meteringGain
protected

◆ m_meteringReleaseK

float WebCore::DynamicsCompressorKernel::m_meteringReleaseK
protected

◆ m_preDelayBuffers

Vector<std::unique_ptr<AudioFloatArray> > WebCore::DynamicsCompressorKernel::m_preDelayBuffers
protected

◆ m_preDelayReadIndex

int WebCore::DynamicsCompressorKernel::m_preDelayReadIndex
protected

◆ m_preDelayWriteIndex

int WebCore::DynamicsCompressorKernel::m_preDelayWriteIndex
protected

◆ m_ratio

float WebCore::DynamicsCompressorKernel::m_ratio
protected

◆ m_sampleRate

float WebCore::DynamicsCompressorKernel::m_sampleRate
protected

◆ m_slope

float WebCore::DynamicsCompressorKernel::m_slope
protected

◆ m_ykneeThresholdDb

float WebCore::DynamicsCompressorKernel::m_ykneeThresholdDb
protected

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