Krotos Modules 3
Loading...
Searching...
No Matches
KwidgetProcessor_Lfo.cpp
Go to the documentation of this file.
1namespace krotos
2{
9
11 {
12 m_frequency = f;
13 m_phaseDelta = MathConstants<float>::twoPi * f / static_cast<float>(m_sampleRate);
14 }
15
16 void KwidgetProcessor_Lfo::prepare(double sampleRate, int samplesPerBlock)
17 {
18 m_sampleRate = sampleRate;
19 m_buffer.setSize(1, samplesPerBlock);
20
21 getModulator(0)->setValues(m_buffer.getReadPointer(0), samplesPerBlock);
22 }
23
24 void KwidgetProcessor_Lfo::process(AudioBuffer<float>& buffer)
25 {
26 auto numSamples = buffer.getNumSamples();
27 auto bufferPtr = m_buffer.getWritePointer(0);
28
29 nextBlock(numSamples);
30
31 for (int i = 0; i < numSamples; i++)
32 {
33 nextSample();
34
35 // get output sample
36 float sample = std::sin(m_phase);
37 bufferPtr[i] = 0.5f * (sample + 1.0f);
38
39 // increment phase
40 m_phase = std::fmod(m_phase + m_phaseDelta, MathConstants<float>::twoPi);
41 }
42 }
43} // namespace krotos
Definition Kwidget.h:8
AudioBuffer< float > m_buffer
Definition KwidgetProcessor_Lfo.h:17
double m_sampleRate
Definition KwidgetProcessor_Lfo.h:19
KwidgetProcessor_Lfo(Kwidget &owner)
Definition KwidgetProcessor_Lfo.cpp:3
void process(AudioBuffer< float > &buffer) override
Definition KwidgetProcessor_Lfo.cpp:24
void setFrequency(float f)
Definition KwidgetProcessor_Lfo.cpp:10
float m_phase
Definition KwidgetProcessor_Lfo.h:21
float m_phaseDelta
Definition KwidgetProcessor_Lfo.h:22
void prepare(double sampleRate, int samplesPerBlock) override
Definition KwidgetProcessor_Lfo.cpp:16
float m_frequency
Definition KwidgetProcessor_Lfo.h:20
An interface for an audio processor designed for modular use.
Definition KwidgetProcessor.h:8
Modulator * getModulator(int index)
Definition KwidgetProcessor.cpp:34
void nextBlock(int numSamples)
Definition KwidgetProcessor.cpp:50
void addParameterAttachments(std::vector< AttachmentInfo >)
Definition KwidgetProcessor.cpp:65
void nextSample()
Definition KwidgetProcessor.cpp:59
void addModulator(bool useAudioRate)
Definition KwidgetProcessor.h:139
void setValues(const float *values, int numValues)
Definition ModulationSource.h:34
Definition AirAbsorptionFilter.cpp:2
static const String Frequency
Definition Kwidget_Lfo.h:8