MCPcopy Create free account
hub / github.com/LabSound/LabSound / createInterpolatedFrame

Method createInterpolatedFrame

src/internal/src/FFTFrame.cpp:31–47  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

29}
30
31std::unique_ptr<FFTFrame> FFTFrame::createInterpolatedFrame(const FFTFrame & frame1, const FFTFrame & frame2, double x)
32{
33 std::unique_ptr<FFTFrame> newFrame(new FFTFrame(frame1.fftSize()));
34
35 newFrame->interpolateFrequencyComponents(frame1, frame2, x);
36
37 // In the time-domain, the 2nd half of the response must be zero, to avoid circular convolution aliasing...
38 int fftSize = newFrame->fftSize();
39 AudioFloatArray buffer(fftSize);
40 newFrame->computeInverseFFT(buffer.data());
41 buffer.zeroRange(fftSize / 2, fftSize);
42
43 // Put back into frequency domain.
44 newFrame->computeForwardFFT(buffer.data());
45
46 return newFrame;
47}
48
49void FFTFrame::interpolateFrequencyComponents(const FFTFrame & frame1, const FFTFrame & frame2, double interp)
50{

Callers

nothing calls this directly

Calls 6

zeroRangeMethod · 0.80
fftSizeMethod · 0.45
computeInverseFFTMethod · 0.45
dataMethod · 0.45
computeForwardFFTMethod · 0.45

Tested by

no test coverage detected