MCPcopy Create free account
hub / github.com/DamRsn/NeuralNote / prepareToPlay

Method prepareToPlay

Lib/DSP/Resampler.cpp:7–31  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

5#include "Resampler.h"
6
7void Resampler::prepareToPlay(double inSourceSampleRate, int inMaxBlockSize, double inTargetSampleRate)
8{
9 mSourceSampleRate = inSourceSampleRate;
10 mTargetSampleRate = inTargetSampleRate;
11 mSpeedRatio = mSourceSampleRate / mTargetSampleRate;
12
13 mInternalBuffer.setSize(1, inMaxBlockSize + 2 * static_cast<int>(LagrangeInterpolator::getBaseLatency()) + 1);
14
15 // Lowpass filter stuffs
16 if (mTargetSampleRate < mSourceSampleRate) {
17 auto filter_coeffs = juce::dsp::FilterDesign<float>::designIIRLowpassHighOrderButterworthMethod(
18 static_cast<float>(mTargetSampleRate / 2.0), mSourceSampleRate, 4);
19
20 mLowpassFilters.resize(static_cast<size_t>(filter_coeffs.size()));
21
22 for (size_t i = 0; i < mLowpassFilters.size(); i++) {
23 mLowpassFilters[i].coefficients = filter_coeffs[(int) i];
24 }
25 } else {
26 // Remove elements from vector (set size to 0)
27 mLowpassFilters.clear();
28 }
29
30 reset();
31}
32
33void Resampler::reset()
34{

Callers 1

resampleBufferFunction · 0.45

Calls 1

clearMethod · 0.45

Tested by

no test coverage detected