Krotos Modules 3
Loading...
Searching...
No Matches
KwidgetProcessor_Saturation.cpp
Go to the documentation of this file.
1namespace krotos
2{
4 {
5 using P = Parameters;
6
7 addParameterAttachments({{P::PreGain, [this](float g) { setInputGainDb(g); }, 16},
8 {P::PostGain, [this](float g) { setOutputGainDb(g); }, 16},
9 {P::Mix, [this](float m) { setMix(m); }, 16},
10 {P::Type, [this](float t) { setFunctionType(t); }, 0},
11 {P::LowCutFreq, [this](float f) { setLowCutFrequency(f); }, 64},
12 {P::HighCutFreq, [this](float f) { setHighCutFrequency(f); }, 64}});
13 }
14
15 void KwidgetProcessor_Saturation::prepare(double sampleRate, int samplesPerBlock)
16 {
17 m_saturation.prepareToPlay(sampleRate, samplesPerBlock);
18 }
19
20 void KwidgetProcessor_Saturation::process(AudioBuffer<float>& buffer)
21 {
22 auto numSamples = buffer.getNumSamples();
23 auto numChannels = buffer.getNumChannels();
24 auto bufferPtr = buffer.getArrayOfWritePointers();
25
26 nextBlock(numSamples);
27
28 for (int i = 0; i < numSamples; i++)
29 {
30 nextSample();
31
32 for (int j = 0; j < numChannels; j++)
33 bufferPtr[j][i] = m_saturation.processSample(bufferPtr[j][i], j);
34 }
35 }
36
46} // namespace krotos
Definition Kwidget.h:8
Saturation m_saturation
Definition KwidgetProcessor_Saturation.h:21
void setHighCutFrequency(float f)
Definition KwidgetProcessor_Saturation.cpp:45
Kwidget_Saturation::Parameters Parameters
Definition KwidgetProcessor_Saturation.h:6
void process(AudioBuffer< float > &buffer) override
Definition KwidgetProcessor_Saturation.cpp:20
void setMix(float m)
Definition KwidgetProcessor_Saturation.cpp:37
void setFunctionType(float t)
Definition KwidgetProcessor_Saturation.cpp:38
KwidgetProcessor_Saturation(Kwidget &owner)
Definition KwidgetProcessor_Saturation.cpp:3
void prepare(double sampleRate, int samplesPerBlock) override
Definition KwidgetProcessor_Saturation.cpp:15
void setOutputGainDb(float g)
Definition KwidgetProcessor_Saturation.cpp:43
void setLowCutFrequency(float f)
Definition KwidgetProcessor_Saturation.cpp:44
void setInputGainDb(float g)
Definition KwidgetProcessor_Saturation.cpp:42
An interface for an audio processor designed for modular use.
Definition KwidgetProcessor.h:8
void nextBlock(int numSamples)
Definition KwidgetProcessor.cpp:50
void addParameterAttachments(std::vector< AttachmentInfo >)
Definition KwidgetProcessor.cpp:65
void nextSample()
Definition KwidgetProcessor.cpp:59
void setOutputGainDb(float gainInDb)
Definition Saturation.cpp:47
void setHighCutFrequency(float newCutoffFrequency)
Definition Saturation.cpp:59
float processSample(float sample, int channel)
Definition Saturation.cpp:31
void setLowCutFrequency(float newCutoffFrequency)
Definition Saturation.cpp:51
void setInputGainDb(float gainInDb)
Definition Saturation.cpp:45
FunctionType
Definition Saturation.h:11
void setMix(float newMixValue)
Definition Saturation.cpp:67
void setFunctionType(FunctionType function)
Definition Saturation.cpp:49
void prepareToPlay(double sampleRate, int blockSize)
Definition Saturation.cpp:14
Definition AirAbsorptionFilter.cpp:2