#include <PhaseVocoder.h>
◆ PhaseVocoderMode
Determines the type of processing that is going to be applied to the fftData.
| Enumerator |
|---|
| Robotizer | |
| PitchShifter | |
| TimeStrecher | |
| NUM_VOCMODES | |
◆ PhaseVocoder()
| krotos::PhaseVocoder::PhaseVocoder |
( |
int | fftSize, |
|
|
int | hopSize, |
|
|
int | inputBufferSize, |
|
|
WindowType | windowFunction ) |
◆ ~PhaseVocoder()
| krotos::PhaseVocoder::~PhaseVocoder |
( |
| ) |
|
|
default |
◆ caclulateFrameRMS()
| float krotos::PhaseVocoder::caclulateFrameRMS |
( |
std::vector< float > | inputFrame | ) |
|
|
private |
◆ detectFrequency()
| void krotos::PhaseVocoder::detectFrequency |
( |
std::vector< float > & | fftData | ) |
|
|
private |
Detects frequency of signal. Not used atm.
◆ pitchShift()
| void krotos::PhaseVocoder::pitchShift |
( |
std::vector< float > & | fftData | ) |
|
|
private |
Pitch shifts without changing playback speed.
◆ process()
| float krotos::PhaseVocoder::process |
( |
float | inputSample, |
|
|
int | channelToUse ) |
◆ processFrame()
| void krotos::PhaseVocoder::processFrame |
( |
std::vector< float > & | inBuffer, |
|
|
int | inPointer, |
|
|
std::vector< float > & | outBuffer, |
|
|
int | outPointer ) |
|
private |
General function that starts the processing to each frame. Calls subfunctions that operate on the spectral data.
◆ robotize()
| void krotos::PhaseVocoder::robotize |
( |
std::vector< float > & | fftData | ) |
|
|
private |
Applies robotization effect. Sets phase of input spectrum to 0.
◆ setGeneralParam()
| void krotos::PhaseVocoder::setGeneralParam |
( |
float | paramVaue | ) |
|
◆ setMode()
◆ setNumChannels()
| void krotos::PhaseVocoder::setNumChannels |
( |
int | newValue | ) |
|
|
private |
Sets number of channels. Currently hardcoded to stereo.
◆ setSampleRate()
| void krotos::PhaseVocoder::setSampleRate |
( |
float | sampleRate | ) |
|
|
inline |
◆ setWindowFunction()
| void krotos::PhaseVocoder::setWindowFunction |
( |
WindowType | windowType | ) |
|
◆ timeStrech()
| void krotos::PhaseVocoder::timeStrech |
( |
std::vector< float > & | fftData | ) |
|
|
private |
High quality time streching without affecting pitch.
◆ wrapToPi()
| float krotos::PhaseVocoder::wrapToPi |
( |
float | phaseIn | ) |
|
|
private |
Principal phase argument function.
◆ m_analysisWindow
| std::vector<float> krotos::PhaseVocoder::m_analysisWindow |
|
private |
◆ m_binFrequenciesAnalysis
| std::vector<std::vector<float> > krotos::PhaseVocoder::m_binFrequenciesAnalysis |
|
private |
◆ m_binFrequenciesSynthesis
| std::vector<std::vector<float> > krotos::PhaseVocoder::m_binFrequenciesSynthesis |
|
private |
◆ m_fft
| dsp::FFT krotos::PhaseVocoder::m_fft |
|
private |
◆ m_fftSize
| int krotos::PhaseVocoder::m_fftSize |
|
private |
◆ m_frequencyDetected
| float krotos::PhaseVocoder::m_frequencyDetected {0.0f} |
|
private |
◆ m_hopCounter
| std::vector<int> krotos::PhaseVocoder::m_hopCounter {0, 0} |
|
private |
◆ m_hopSizeAnalysis
| int krotos::PhaseVocoder::m_hopSizeAnalysis |
|
private |
◆ m_hopSizeSynthesis
| int krotos::PhaseVocoder::m_hopSizeSynthesis |
|
private |
◆ m_inputBuffer
| std::vector<std::vector<float> > krotos::PhaseVocoder::m_inputBuffer |
|
private |
◆ m_inputBufferSize
| int krotos::PhaseVocoder::m_inputBufferSize |
|
private |
◆ m_inputWritePointer
| std::vector<int> krotos::PhaseVocoder::m_inputWritePointer {0, 0} |
|
private |
◆ m_magnitudesAnalysis
| std::vector<std::vector<float> > krotos::PhaseVocoder::m_magnitudesAnalysis |
|
private |
◆ m_magnitudesSynthesis
| std::vector<std::vector<float> > krotos::PhaseVocoder::m_magnitudesSynthesis |
|
private |
◆ m_maxBinIndex
| int krotos::PhaseVocoder::m_maxBinIndex {0} |
|
private |
◆ m_maxBinValue
| float krotos::PhaseVocoder::m_maxBinValue {0.0f} |
|
private |
◆ m_mode
◆ m_numChannel
| int krotos::PhaseVocoder::m_numChannel |
|
private |
◆ m_outputBuffer
| std::vector<std::vector<float> > krotos::PhaseVocoder::m_outputBuffer |
|
private |
◆ m_outputBufferSize
| int krotos::PhaseVocoder::m_outputBufferSize |
|
private |
◆ m_outputReadPointer
| std::vector<int> krotos::PhaseVocoder::m_outputReadPointer {0, 0} |
|
private |
◆ m_outputWritePointer
| std::vector<int> krotos::PhaseVocoder::m_outputWritePointer |
|
private |
◆ m_overlapFactor
| const int krotos::PhaseVocoder::m_overlapFactor = 4 |
|
private |
◆ m_pitchShiftRatio
| float krotos::PhaseVocoder::m_pitchShiftRatio {1.0f} |
|
private |
◆ m_previousPhasesInput
| std::vector<std::vector<float> > krotos::PhaseVocoder::m_previousPhasesInput |
|
private |
◆ m_previousPhasesOutput
| std::vector<std::vector<float> > krotos::PhaseVocoder::m_previousPhasesOutput |
|
private |
◆ m_sampleRate
| float krotos::PhaseVocoder::m_sampleRate {0.0f} |
|
private |
◆ m_synthesisWindow
| std::vector<float> krotos::PhaseVocoder::m_synthesisWindow |
|
private |
◆ m_timeStretchRatio
| float krotos::PhaseVocoder::m_timeStretchRatio {1.0f} |
|
private |
◆ m_windowGainCorrection
| float krotos::PhaseVocoder::m_windowGainCorrection |
|
private |
◆ m_windowType
◆ NUM_CHANNELS_MAX
| const int krotos::PhaseVocoder::NUM_CHANNELS_MAX {2} |
|
private |
The documentation for this class was generated from the following files: