Krotos Modules 3
Loading...
Searching...
No Matches
KwidgetProcessor_PhaseVocoder.cpp
Go to the documentation of this file.
1namespace krotos
2{
4
6 : KwidgetProcessor(owner), m_phaseVocoder(1024, 256, 16384, WindowType::Hann)
7 {
9 {Parameters::Mode, [this](float x) { setMode(x); }, 0},
10 {Parameters::WindowType, [this](float x) { setWindowType(x); }, 0}});
11 }
12
14 {
15 m_phaseVocoder.setGeneralParam(generalParam);
16 }
17
19 {
20 Mode activeMode = static_cast<Mode>(static_cast<int>(mode));
21 m_phaseVocoder.setMode(activeMode);
22 }
23
25 {
26 DBG(type);
27 WindowType activeType = static_cast<WindowType>(type);
29 }
30
31 void KwidgetProcessor_PhaseVocoder::prepare(double sampleRate, int samplesPerBlock)
32 {
33 ignoreUnused(samplesPerBlock);
34 m_phaseVocoder.setSampleRate(static_cast<float>(sampleRate));
35 }
36
37 void KwidgetProcessor_PhaseVocoder::process(AudioBuffer<float>& buffer)
38 {
39 auto numSamples = buffer.getNumSamples();
40 auto numChannels = buffer.getNumChannels();
41
42 auto bufferPtr = buffer.getArrayOfWritePointers();
43
44 nextBlock(numSamples);
45
46 for (int i = 0; i < numSamples; i++)
47 {
48 nextSample();
49
50 for (int j = 0; j < numChannels; j++)
51 {
52 auto& x = bufferPtr[j][i];
53
54 x = m_phaseVocoder.process(x, j);
55 }
56 }
57 }
58
59} // namespace krotos
Definition Kwidget.h:8
void prepare(double sampleRate, int samplesPerBlock) override
Definition KwidgetProcessor_PhaseVocoder.cpp:31
KwidgetProcessor_PhaseVocoder(Kwidget &owner)
Definition KwidgetProcessor_PhaseVocoder.cpp:5
void setGeneralParam(float generalParam)
Definition KwidgetProcessor_PhaseVocoder.cpp:13
PhaseVocoder m_phaseVocoder
Definition KwidgetProcessor_PhaseVocoder.h:18
void setWindowType(float windowType)
Definition KwidgetProcessor_PhaseVocoder.cpp:24
void process(AudioBuffer< float > &buffer) override
Definition KwidgetProcessor_PhaseVocoder.cpp:37
void setMode(float mode)
Definition KwidgetProcessor_PhaseVocoder.cpp:18
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
float process(float inputSample, int channelToUse)
Definition PhaseVocoder.cpp:92
PhaseVocoderMode
Definition PhaseVocoder.h:21
void setSampleRate(float sampleRate)
Definition PhaseVocoder.h:43
void setGeneralParam(float paramVaue)
Definition PhaseVocoder.cpp:52
void setWindowFunction(WindowType windowType)
Definition PhaseVocoder.cpp:23
void setMode(PhaseVocoderMode newMode)
Definition PhaseVocoder.h:41
Definition AirAbsorptionFilter.cpp:2
WindowType
Definition WindowFunctions.h:6
static const String Mode
Definition Kwidget_PhaseVocoder.h:8
static const String WindowType
Definition Kwidget_PhaseVocoder.h:10
static const String GeneralParam
Definition Kwidget_PhaseVocoder.h:9