25class LivePitchShifter {
27 LivePitchShifter(OscType newInputType, int32_t phaseIncrement);
29 void giveInput(int32_t numSamples, int32_t inputType, int32_t phaseIncrement);
30 void render(int32_t* outputBuffer, int32_t numSamplesThisFunctionCall, int32_t phaseIncrement, int32_t amplitude,
31 int32_t amplitudeIncrement, int32_t interpolationBufferSize);
33 bool mayBeRemovedWithoutClick();
35#if INPUT_ENABLE_REPITCHED_BUFFER
36 void interpolate(int32_t* sampleRead, int32_t interpolationBufferSize, int32_t numChannelsNow, int32_t whichKernel);
37 int32_t* repitchedBuffer;
38 int32_t repitchedBufferWritePos;
39 uint64_t repitchedBufferNumSamplesWritten;
40 bool stillWritingToRepitchedBuffer;
41 int32_t interpolationBuffer[2][kInterpolationMaxNumSamples];
48 uint32_t crossfadeProgress;
52 uint32_t crossfadeIncrement{0};
53 int32_t nextCrossfadeLength;
54 int32_t samplesTilHopEnd;
55 int32_t samplesIntoHop;
57 int32_t percThresholdForCut{0};
62 void hopEnd(int32_t phaseIncrement,
LiveInputBuffer* liveInputBuffer, uint64_t numRawSamplesProcessed,
63 uint64_t numRawSamplesProcessedLatest);
64 void considerRepitchedBuffer(int32_t phaseIncrement);
65 bool olderPlayHeadIsCurrentlySounding();