Krotos Modules 3
Loading...
Searching...
No Matches
KwidgetProcessor_MoogVcf.cpp
Go to the documentation of this file.
1namespace krotos
2{
4 {
5 addParameterAttachments({{Parameters::Cutoff, [this](float x) { setCutoff(x); }, 64},
6 {Parameters::Resonance, [this](float x) { setResonance(x); }, 64},
7 {Parameters::Bypass, [this](float x) { setBypass(x); }, 0}});
8 }
9
10 void KwidgetProcessor_MoogVcf::prepare(double sampleRate, int samplesPerBlock)
11 {
12 m_moogVcf.setUpFirst(sampleRate, samplesPerBlock);
13 }
14
15 void KwidgetProcessor_MoogVcf::process(AudioBuffer<float>& buffer)
16 {
17 auto numSamples = buffer.getNumSamples();
18 auto numChannels = buffer.getNumChannels();
19 auto bufferPtr = buffer.getArrayOfWritePointers();
20
21 nextBlock(numSamples);
22
23 if (m_bypass)
24 {
25 for (int i = 0; i < numSamples; i++)
26 nextSample();
27
28 return;
29 }
30
31 for (int i = 0; i < numSamples; i++)
32 {
33 nextSample();
34
35 for (int j = 0; j < numChannels; j++)
36 {
37 float unfiltered = bufferPtr[j][i];
38 float filteredSample = m_moogVcf.process(unfiltered, m_sampleBefore);
39 bufferPtr[j][i] = filteredSample;
40 m_sampleBefore = filteredSample;
41 }
42 }
43 }
44
45 void KwidgetProcessor_MoogVcf::setCutoff(float cutoffInHz) { m_moogVcf.updateCutoff(cutoffInHz); }
46
48
49 void KwidgetProcessor_MoogVcf::setBypass(float isBypassed) { m_bypass = static_cast<bool>(isBypassed); }
50} // namespace krotos
Definition Kwidget.h:8
void prepare(double sampleRate, int samplesPerBlock) override
Definition KwidgetProcessor_MoogVcf.cpp:10
MoogVcf m_moogVcf
Definition KwidgetProcessor_MoogVcf.h:18
bool m_bypass
Definition KwidgetProcessor_MoogVcf.h:19
void setCutoff(float cutoffInHz)
Definition KwidgetProcessor_MoogVcf.cpp:45
void setBypass(float isBypassed)
Definition KwidgetProcessor_MoogVcf.cpp:49
void process(AudioBuffer< float > &) override
Definition KwidgetProcessor_MoogVcf.cpp:15
float m_sampleBefore
Definition KwidgetProcessor_MoogVcf.h:20
KwidgetProcessor_MoogVcf(Kwidget &owner)
Definition KwidgetProcessor_MoogVcf.cpp:3
void setResonance(float resonance)
Definition KwidgetProcessor_MoogVcf.cpp:47
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 updateResonance(float _r)
updateResonance
Definition MoogVcf.h:74
void updateCutoff(float _f0)
updateCutoff
Definition MoogVcf.h:49
float process(float inputSampleNow, float inputSampleBefore)
process()
Definition MoogVcf.h:94
void setUpFirst(double sampleRate, int)
setUpFirst
Definition MoogVcf.h:25
Definition AirAbsorptionFilter.cpp:2
static const String Cutoff
Definition Kwidget_MoogVcf.h:8
static const String Bypass
Definition Kwidget_MoogVcf.h:10
static const String Resonance
Definition Kwidget_MoogVcf.h:9