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;
49 uint32_t crossfadeIncrement;
50 int32_t nextCrossfadeLength;
51 int32_t samplesTilHopEnd;
52 int32_t samplesIntoHop;
54 int32_t percThresholdForCut;
59 void hopEnd(int32_t phaseIncrement,
LiveInputBuffer* liveInputBuffer, uint64_t numRawSamplesProcessed,
60 uint64_t numRawSamplesProcessedLatest);
61 void considerRepitchedBuffer(int32_t phaseIncrement);
62 bool olderPlayHeadIsCurrentlySounding();