14 #ifndef __CL_PitchDetect__
15 #define __CL_PitchDetect__
32 void setPitchMode(
int multi);
39 void setFloatingBandwidth(
int on,
fpreal bandwidth);
40 void setHarmonicCompensation(
int on,
int correct,
fpreal error);
41 void setSmoothJumps(
int on,
fpreal minjump);
42 void setFrequencyHint(
int on,
fpreal hint,
fpreal bandwidth);
50 void clearSamples(
int from);
54 void doWindowOp(
int nsamples,
fpreal *dest)
override;
57 void selectMultipleBands();
58 void detectHarmonics();
59 void designFilter(
int size);
113 { myFrequency = mySingleMag = myMag = 0.0; myNextHarmonic = 0;
114 myPrevHarmonic = 0; myAmAHarmonic = 0; }
117 { myFrequency = freq; mySingleMag = myMag = mag; myNextHarmonic = 0;
118 myAmAHarmonic = 0; myPrevHarmonic = 0; }
cl_PitchNode * myPrevHarmonic
int myHarmonicCompensation
UT_Array< cl_PitchNode > myHarmonics
ImageBuf OIIO_API min(Image_or_Const A, Image_or_Const B, ROI roi={}, int nthreads=0)
bool operator==(const BaseDimensions< T > &a, const BaseDimensions< Y > &b)
cl_PitchNode(fpreal freq, fpreal mag)
fpreal myFloatingBandwidth
virtual void reset(fpreal val=0.0)
int myFloatingBandwidthOn
UT_FFT< fpreal > * myTransform
IMATH_HOSTDEVICE constexpr int divs(int x, int y) IMATH_NOEXCEPT
virtual int maxFilterSamples()
OIIO_FORCEINLINE T log(const T &v)
cl_PitchNode * myNextHarmonic