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

Applies distortion to an audio signal using various transfer functions. More...

#include <Saturation.h>

Classes

struct  Function
 

Public Types

enum  FunctionType {
  diodic = 0 , hyperbolicTangent , saturation1 , saturation2 ,
  saturation3
}
 

Public Member Functions

 Saturation ()
 
 ~Saturation ()
 
void prepareToPlay (double sampleRate, int blockSize)
 
float processSample (float sample, int channel)
 
void setFunctionType (FunctionType function)
 
void setInputGainDb (float gainInDb)
 
void setOutputGainDb (float gainInDb)
 
void setLowCutFrequency (float newCutoffFrequency)
 
void setHighCutFrequency (float newCutoffFrequency)
 
void setMix (float newMixValue)
 

Public Attributes

const std::map< FunctionType, float(*)(float)> functions
 

Private Types

enum  ParameterList {
  preGain = 0 , postGain , lowCut , hiCut ,
  mix
}
 
enum  Channel { left = 0 , right }
 

Static Private Member Functions

template<typename T >
static int sign (T val)
 

Private Attributes

const int NUM_CHANNELS_MAX {2}
 
double m_sampleRate {0.0}
 
float m_outputGain {1.0f}
 
float m_inputGain {1.0f}
 
float m_mix {1.0f}
 
dsp::WaveShaper< float > m_waveshaper
 
OwnedArray< IIRFilter > m_lowCutFilters
 
OwnedArray< IIRFilter > m_highCutFilters
 

Detailed Description

Applies distortion to an audio signal using various transfer functions.

Member Enumeration Documentation

◆ Channel

Enumerator
left 
right 

◆ FunctionType

Enumerator
diodic 
hyperbolicTangent 
saturation1 
saturation2 
saturation3 

◆ ParameterList

Enumerator
preGain 
postGain 
lowCut 
hiCut 
mix 

Constructor & Destructor Documentation

◆ Saturation()

krotos::Saturation::Saturation ( )

◆ ~Saturation()

krotos::Saturation::~Saturation ( )

Member Function Documentation

◆ prepareToPlay()

void krotos::Saturation::prepareToPlay ( double sampleRate,
int blockSize )

◆ processSample()

float krotos::Saturation::processSample ( float sample,
int channel )

◆ setFunctionType()

void krotos::Saturation::setFunctionType ( FunctionType function)

◆ setHighCutFrequency()

void krotos::Saturation::setHighCutFrequency ( float newCutoffFrequency)

◆ setInputGainDb()

void krotos::Saturation::setInputGainDb ( float gainInDb)

◆ setLowCutFrequency()

void krotos::Saturation::setLowCutFrequency ( float newCutoffFrequency)

◆ setMix()

void krotos::Saturation::setMix ( float newMixValue)

◆ setOutputGainDb()

void krotos::Saturation::setOutputGainDb ( float gainInDb)

◆ sign()

template<typename T >
int krotos::Saturation::sign ( T val)
staticprivate

Member Data Documentation

◆ functions

const std::map<FunctionType, float (*)(float)> krotos::Saturation::functions
Initial value:
{
}
@ diodic
Definition Saturation.h:12
@ saturation3
Definition Saturation.h:16
@ hyperbolicTangent
Definition Saturation.h:13
@ saturation2
Definition Saturation.h:15
@ saturation1
Definition Saturation.h:14
static float hyperbolicTangent(float x)
Definition Saturation.h:59
static float saturation1(float x)
Definition Saturation.h:65
static float diodic(float x)
Definition Saturation.h:63

◆ m_highCutFilters

OwnedArray<IIRFilter> krotos::Saturation::m_highCutFilters
private

◆ m_inputGain

float krotos::Saturation::m_inputGain {1.0f}
private

◆ m_lowCutFilters

OwnedArray<IIRFilter> krotos::Saturation::m_lowCutFilters
private

◆ m_mix

float krotos::Saturation::m_mix {1.0f}
private

◆ m_outputGain

float krotos::Saturation::m_outputGain {1.0f}
private

◆ m_sampleRate

double krotos::Saturation::m_sampleRate {0.0}
private

◆ m_waveshaper

dsp::WaveShaper<float> krotos::Saturation::m_waveshaper
private

◆ NUM_CHANNELS_MAX

const int krotos::Saturation::NUM_CHANNELS_MAX {2}
private

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