void DFT::resize(uint32_t newWindowSize, uint32_t newPadSize){ //printf("DFT::resize()\n"); if(0 == newWindowSize && 0 == newPadSize) return; uint32_t oldDFTSize = sizeDFT(); uint32_t newDFTSize = newWindowSize + newPadSize; uint32_t oldFrqSize = oldDFTSize+2; // 2 extra for DC/Nyquist imaginary uint32_t newFrqSize = newDFTSize+2; // " if(mem::resize(mBuf, oldFrqSize, newFrqSize)){ mBufInv = mBuf; if(mAux) mem::resize(mAux, oldFrqSize, newFrqSize); mFFT.resize(newDFTSize); mem::deepZero(mBuf, newFrqSize); } mem::resize(mPadOA, sizePad(), newPadSize); mem::deepZero(mPadOA, newPadSize); mSizeDFT = newDFTSize; mSizeWin = newWindowSize; mSizeHop = mSizeWin; onResync(1); }
STFT& STFT::sizeHop(uint32_t size){ mSlide.sizeHop(size); mSizeHop = mSlide.sizeHop(); computeInvWinMul(); onResync(1); return *this; }
void STFT::sizeHop(uint32_t size){ mSlide.sizeHop(size); mSizeHop = mSlide.sizeHop(); computeInvWinMul(); onResync(1); }