Krotos Modules 3
Loading...
Searching...
No Matches
KwidgetProcessor_Sine.cpp
Go to the documentation of this file.
1namespace krotos
2{
7
8 void KwidgetProcessor_Sine::prepare(double sampleRate, int /*samplesPerBlock*/) { m_sampleRate = sampleRate; }
9
10 void KwidgetProcessor_Sine::process(AudioBuffer<float>& buffer)
11 {
12 auto numSamples = buffer.getNumSamples();
13 auto numChannels = buffer.getNumChannels();
14 auto bufferPtr = buffer.getArrayOfWritePointers();
15
16 nextBlock(numSamples);
17
18 auto amp = getAttachment(Parameters::Amplitude)->data();
19
20 for (int i = 0; i < numSamples; i++)
21 {
22 nextSample();
23
24 // get output sample
25 float sample = std::sin(m_phase);
26 for (int j = 0; j < numChannels; j++)
27 bufferPtr[j][i] = sample * amp[i];
28
29 // increment phase
30 m_phase = std::fmod(m_phase + m_phaseDelta, MathConstants<float>::twoPi);
31 }
32 }
33
35 {
36 m_frequency = f;
37 m_phaseDelta = MathConstants<float>::twoPi * f / static_cast<float>(m_sampleRate);
38 }
39} // namespace krotos
Definition Kwidget.h:8
KwidgetProcessor_Sine(Kwidget &owner)
Definition KwidgetProcessor_Sine.cpp:3
void process(AudioBuffer< float > &buffer) override
Definition KwidgetProcessor_Sine.cpp:10
void prepare(double sampleRate, int samplesPerBlock) override
Definition KwidgetProcessor_Sine.cpp:8
double m_sampleRate
Definition KwidgetProcessor_Sine.h:19
void setFrequency(float f)
Definition KwidgetProcessor_Sine.cpp:34
float m_phase
Definition KwidgetProcessor_Sine.h:21
float m_frequency
Definition KwidgetProcessor_Sine.h:23
float m_phaseDelta
Definition KwidgetProcessor_Sine.h:22
An interface for an audio processor designed for modular use.
Definition KwidgetProcessor.h:8
std::shared_ptr< KAttachment > getAttachment(const String &paramID)
Definition KwidgetProcessor.cpp:26
void nextBlock(int numSamples)
Definition KwidgetProcessor.cpp:50
void addParameterAttachments(std::vector< AttachmentInfo >)
Definition KwidgetProcessor.cpp:65
void nextSample()
Definition KwidgetProcessor.cpp:59
Definition AirAbsorptionFilter.cpp:2
static const String Amplitude
Definition Kwidget_Sine.h:8