public DoubleDataSource process(DoubleDataSource inputAudio) { amount = MathUtils.CheckLimits(amount, MIN_AMOUNT, MAX_AMOUNT); double[] vscales = {amount}; int frameLength = SignalProcUtils.getDFTSize(fs); int predictionOrder = SignalProcUtils.getLPOrder(fs); VocalTractScalingProcessor p = new VocalTractScalingProcessor(predictionOrder, fs, frameLength, vscales); FrameOverlapAddSource foas = new FrameOverlapAddSource(inputAudio, Window.HANNING, true, frameLength, fs, p); return new BufferedDoubleDataSource(foas); }