20 double factor, std::complex<float>* spectrum,
const float* magnitude)>;
58 void feedAudio(
const float*
const* in_smp,
int numSamples);
93 template <
int num_channels>
98 std::shared_ptr<impl>
d;
void _applyImagingReduction()
int getNumAvailableOutputSamples() const
void setTimeStretchAndPitchFactor(double timeStretch, double pitchFactor)
int _availableOutputSamples
const bool _reduceImaging
int getSamplesToNextHop() const
void _time_stretch(float hop_a, float hop_s)
std::function< void(double factor, std::complex< float > *spectrum, const float *magnitude)> ShiftTimbreCb
void setup(int numChannels, int maxBlockSize)
void retrieveAudio(float *const *out_smp, int numSamples)
const ShiftTimbreCb _shiftTimbreCb
void _process_hop(int hop_a, int hop_s)
process one hop/chunk in _fft_timeSeries and add the result to output circular buffer
int getLatencySamples() const
static constexpr bool normalize_window
double _expectedPhaseChangePerBinPerSample
void processPitchShift(float *const *smp, int numSamples, double pitchFactor)
int getLatencySamplesForStretchRatio(float timeStretch) const
TimeAndPitch(int fftSize, bool reduceImaging=true, ShiftTimbreCb shiftTimbreCb={})
int _analysis_hop_counter
std::shared_ptr< impl > d
int _outBufferWriteOffset
static constexpr bool modulate_synthesis_hop
void feedAudio(const float *const *in_smp, int numSamples)
static constexpr int overlap
constexpr auto maxBlockSize